2013-01-10 3 views
7

EDIT: Ajout de $ routeProvider et $ routeParams, mais $ routeParams.productId est toujours indéfini. C'était mon premier essai, mais je pensais que c'était la mauvaise façon. De toute façon ça ne marche pas pour le moment.AngularJS Controller en fonction du paramètre d'URL

Je commence à apprendre AngularJS et j'ai une question très simple: En fonction de l'ID contenu dans l'URL, je voudrais afficher un enregistrement BD différent.

... 
<div ng-app=MyApp> 
    <div ng-controller="MyCtrl"> 
    {{ record }} 
    </div> 
</div> 
... 

fichier Mon Javascript:

var MyApp = angular.module("MyApp",[]); 

MyApp.config(['$routeProvider', function($routeProvider) { 
    $routeProvider 
    .when('/get/:productId', { 
     controller: 'MyCtrl' 
    }); 
}]) 

MyApp.controller('MyCtrl',['$scope','$routeParams','$http', 
    function($scope,$routeParams,$http) { 
    $http.get("/get/"+$routeParams.productId).success(function(data) { 
     $scope.record = data; 
    }); 
}]) 

J'ai essayé d'utiliser routeProvider $ et routeParams $ sans succès.

Merci à l'avance, Bill

+0

Il est tout à fait possible que « get » dans votre chemin a une collision de noms, puisqu'il s'agit également d'un verbe HTTP et d'une méthode $ http. – jpsimons

Répondre

10

vous avez besoin de 2 choses, les routeParams de $ injectés dans votre contrôleur et de créer un itinéraire valide avec la méthode get

MyApp.controller('MyCtrl',['$scope','$http',"$routeParams", 
     function($scope,$http,$routeParams) { 
      $http.get("/get/"+$routeParams.productId).success(function(data) { 
       $scope.record = data; 
     }); 
    }; 
+0

Ce qui me manque, c'est comment implémenter l'ID de lien de liaison utilisé sur l'URL, et $ routeParams.productId. J'ai essayé quelque chose comme $ routeProvider.when ('/ get /: productId', {controller: 'MyCtrl'}) sans succès. – billdangerous

+0

où est votre routeProvider config? http://docs.angularjs.org/tutorial/step_07 – mpm

+0

Mise à jour avec $ routeProvider – billdangerous

Questions connexes