これはおそらく簡単ですが、ドキュメントには何も見つからず、グーグルは役に立ちませんでした。 $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
パラメーターを取得しようとしましたが、うまくいきませんでした。これを行う正しい方法は何ですか?
$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; });
}]
}
})
Ui-router 1.0を使用している人向け$stateParams
非推奨 、 $transition$
代わりにオブジェクト:
.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; });
}]
}
})