Je crée une application AngularJS plutôt simple, mais pour des raisons de simplicité, je préfère ne pas utiliser le routage (si possible), et simplement renvoyer des pages individuelles Angular pages du serveur. Essentiellement, utilisez Angular uniquement pour la mise en page et la fonctionnalité des 'widgets' et non pour se déplacer entre les pages.
Cela dit, j'ai passé des heures à essayer d'obtenir un ID de l'URL actuelle, donc:
/Tickets/:id
Tout ce que je veux faire dans mon contrôleur, c'est obtenir l'ID de l'URL, puis le transmettre à une usine. (ci-dessous est un exemple utilisant un pseudocode)
app.controller('ticketController', ['$scope', '$route',
function ($scope, $route, $location) {
//Get ID out of current URL
var currentId = someFunction().id;
factory.callFactory(ID);
}]);
J'ai également essayé de créer des itinéraires, mais les objets retournés ne semblent pas fournir un moyen d'obtenir l'ID.
app.config(['$routeProvider', function ($routeProvider) {
$routeProvider
.when('/tickets/:id',
{
templateUrl: '/partials/edit',
controller: 'ticketController'
}
);
}]);
Je ne sais pas ce que je fais mal.
Cela ne semble pas fonctionner pour moi
Cela ne semble pas non plus fonctionner, mais je fais peut-être quelque chose de mal
Essayez $routeParams
au lieu:
app.controller('ticketController', ['$scope', '$routeParams',
function ($scope, $routeParams) {
//Get ID out of current URL
var currentId = $routeParams.id;
}]);
Si vous utilisez ui-router
alors essayez $stateParams
:
app.controller('ticketController', ['$scope', '$stateParams',
function ($scope, $stateParams) {
//Get ID out of current URL
var currentId = $stateParams.id;
}]);