2013-01-10 24 views
7

EDIT: Aggiunto $ routeProvider e $ routeParams, ma $ routeParams.productId è sempre indefinito. Era il mio primo tentativo, ma pensavo che fosse il modo sbagliato. Comunque non funziona per il momento.AngularJS controller a seconda del parametro URL

Inizio a imparare AngularJS e ho una domanda molto semplice: A seconda dell'ID contenuta nell'URL, vorrei visualizzare diversi record BD.

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

file di mio 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; 
    }); 
}]) 

ho provato ad usare $ routeProvider e $ routeParams senza successo.

Grazie in anticipo, Bill

+0

E 'del tutto possibile che "get" in il tuo percorso ha una collisione di nomi, poiché è anche un verbo HTTP e un metodo $ http. – jpsimons

risposta

10

avete bisogno di 2 cose, i $ routeParams iniettato nel controller e creare un percorso valido con il metodo get

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

Quello che mi manca è come implementare l'ID di collegamento colla usato su URL e $ routeParams.productId. Ho provato qualcosa come $ routeProvider.when ('/ get /: productId', {controller: 'MyCtrl'}) senza successo. – billdangerous

+0

dov'è il tuo percorsoProvider config? http://docs.angularjs.org/tutorial/step_07 – mpm

+0

Aggiornato con $ routeProvider – billdangerous

Problemi correlati