AngularJS Controller取决于URL参数

时间:2013-01-10 14:06:19

标签: javascript angularjs

编辑:添加了$ routeProvider和$ routeParams,但$ routeParams.productId始终未定义。这是我最初的尝试,但我认为这是错误的方式。无论如何它暂时不起作用。

我开始学习AngularJS,我有一个非常简单的问题: 根据URL中包含的ID,我想显示不同的BD记录。

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

我的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;
     });
}])

我尝试使用$ routeProvider和$ routeParams但没有成功。

提前谢谢你, 比尔

1 个答案:

答案 0 :(得分:10)

你需要两件事,在你的控制器中注入$ routeParams并使用get方法创建一个有效的路径

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