【发布时间】:2015-09-12 10:41:41
【问题描述】:
我有一个检索单个帖子的路由和一个查询我的 API 的服务。但是我需要将参数从 URL 传递给服务,以便我可以正确调用 API。我不知道该怎么做。
这是我到目前为止所想出的。我省略了似乎与这个问题无关的内容。
感谢您的帮助!
路由
myModule.config([
'$stateProvider',
'$urlRouterProvider',
'$locationProvider',
function($stateProvider, $urlRouterProvider, $locationProvider) {
$stateProvider
.state('post', {
url: '/posts/:hash_id/:slug',
templateUrl: '/js/app/views/post.html',
controller: 'PostCtrl',
resolve: {
postPromise: ['posts', function(posts, $stateParams){
//returns undefined
console.log($stateParams);
return posts.getOne($stateParams);
}]
}
})
// etc
服务
myModule.factory('posts', ['$http', 'auth', function($http, auth){
var o = {
posts: [],
post: {}
};
o.getOne = function(params) {
// Returns undefined
console.log(params);
return $http.get('/api/v1/posts/' + params.hash_id).success(function(data){
angular.copy(data, o.post);
});
};
return o;
}])
【问题讨论】:
-
您永远不会在
postPrimise字符串依赖项中包含$stateParams。
标签: javascript angularjs dependency-injection angular-ui-router angularjs-service