2013-01-10 73 views
7

EDIT: Đã thêm $ routeProvider và $ routeParams, nhưng $ routeParams.productId luôn không xác định. Đó là lần thử đầu tiên của tôi, nhưng tôi nghĩ đó là một cách sai lầm. Dù sao nó không hoạt động cho thời điểm này.Bộ điều khiển AngularJS tùy thuộc vào tham số URL

Tôi bắt đầu học AngularJS và tôi có một câu hỏi rất đơn giản: Tùy thuộc vào ID có trong URL, tôi muốn hiển thị bản ghi BD khác nhau.

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

tập tin của tôi 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; 
    }); 
}]) 

Tôi cố gắng để sử dụng $ routeProvider và $ routeParams không thành công.

Cảm ơn bạn trước, Bill

+0

Nó hoàn toàn có thể là "nhận" trong đường dẫn của bạn có một va chạm tên, vì nó cũng là một động từ HTTP và một phương thức $ http. – jpsimons

Trả lời

10

bạn cần 2 thứ, những $ routeParams tiêm trong điều khiển của bạn và tạo ra một lộ trình hợp lệ với get phương pháp

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

Điều tôi thiếu là cách triển khai ID liên kết keo được sử dụng trên URL và $ routeParams.productId. Tôi đã thử một cái gì đó như $ routeProvider.when ('/ get /: productId', {controller: 'MyCtrl'}) mà không thành công. – billdangerous

+0

cấu hình routeProvider của bạn ở đâu? http://docs.angularjs.org/tutorial/step_07 – mpm

+0

Cập nhật với $ routeProvider – billdangerous

Các vấn đề liên quan