AngularJS Controller取决于URL参数

bil*_*ous 7 javascript angularjs

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

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

...
<div ng-app=MyApp>
  <div ng-controller="MyCtrl">
    {{ record }}
  </div>
</div>
...
Run Code Online (Sandbox Code Playgroud)

我的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;
     });
}])
Run Code Online (Sandbox Code Playgroud)

我试图使用$ routeProvider和$ routeParams但没有成功.

比尔先生,先谢谢你

mpm*_*mpm 10

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

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