54

これはおそらく単純ですが、ドキュメントには何も見つからず、グーグルも役に立ちませんでした。$stateProvider必要なデータを取得するためにサーバーでヒットする必要がある URL が状態 URL パラメーターに依存する状態を定義しようとしています。要するに、次のようなものです:

 .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; });
      }
    }
  })

上記は機能しません。$routeParams必要なcatパラメーターを取得するために注入しようとしましたが、うまくいきませんでした。これを行う正しい方法は何ですか?

4

2 に答える 2

106

あなたは と親しかった$routeParams。ui-router を使用する場合は、$stateParams代わりに使用してください。このコードは私のために働きます:

.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; });
         }]
     }
})
于 2013-09-25T18:49:48.713 に答える