web-dev-qa-db-fra.com

Angular - Renvoyer l'ID du chemin URL dans le contrôleur

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

29
Greg

Essayez $routeParams au lieu:

app.controller('ticketController', ['$scope', '$routeParams',
   function ($scope, $routeParams) {
      //Get ID out of current URL
      var currentId = $routeParams.id;
}]);
42
asgoth

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;
}]);
18
Omid-RH