2013-09-25 30 views
51

Điều này có thể đơn giản nhưng tôi không thể tìm thấy bất kỳ nội dung nào trong tài liệu và googling không hữu ích. Tôi đang cố gắng xác định trạng thái trong $stateProvider nơi URL tôi cần nhấn trên máy chủ để lấy dữ liệu cần thiết tùy thuộc vào thông số URL trạng thái. Tóm lại, một cái gì đó như:ui-router giải quyết với thông số động

.state('recipes.category', { 
    url: '/:cat', 
    templateUrl: '/partials/recipes.category.html', 
    controller: 'RecipesCategoryCtrl', 
    resolve: { 
     category: function($http) { 
     return $http.get('/recipes/' + cat) 
      .then(function(data) { return data.data; }); 
     } 
    } 
    }) 

Ở trên không có tác dụng. Tôi đã thử tiêm $routeParams để có được thông số cat cần thiết, không có may mắn. Cách làm đúng là gì?

Trả lời

102

Bạn đã đóng với $routeParams. Nếu bạn sử dụng ui-router, hãy sử dụng $stateParams để thay thế. Mã này làm việc cho tôi:

.state('recipes.category', { 
    url: '/:cat', 
    templateUrl: '/partials/recipes.category.html', 
    controller: 'RecipesCategoryCtrl', 
    resolve: { 
     category: ['$http','$stateParams', function($http, $stateParams) { 
      return $http.get('/recipes/' + $stateParams.cat) 
        .then(function(data) { return data.data; }); 
     }] 
    } 
}) 
+0

trình cho tôi quá, cảm ơn! – kliron

+0

Và cách lấy 'danh mục' trong bộ điều khiển RecipesCategoryCtrl? – dumitru

+1

chỉ cần tiêm nó: 'RecipesCategoryCtrl = function ($ scope, category) {$ scope.cat = category}' – Reto

6

Đối với những người đang sử dụng ui-router 1.0 $stateParamsis deprecated, bạn nên sử dụng $transition$ đối tượng thay vì:

.state('recipes.category', { 
 
    url: '/:cat', 
 
    templateUrl: '/partials/recipes.category.html', 
 
    controller: 'RecipesCategoryCtrl', 
 
    resolve: { 
 
     category: ['$http','$transition$', function($http, $transition$) { 
 
      return $http.get('/recipes/' + $transition$.params().cat) 
 
        .then(function(data) { return data.data; }); 
 
     }] 
 
    } 
 
})

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