How to pass $stateParams from ui-router to service in resolve?(如何将 $stateParams 从 ui-router 传递给解析服务?)
问题描述
我有一个检索单个帖子的路由和一个查询我的 API 的服务.但是我需要将参数从 URL 传递给服务,以便我可以正确调用 API.我不知道该怎么做.
I have a route to retrieve a single post and a service to query my API to do so. But I need to pass parameters from the URL to the service so that I can call the API properly. I cannot wrap my head around how to do that.
这是我到目前为止所想出的.我省略了似乎与这个问题无关的内容.
This is what I have come up with so far. I left out what seemed not relevant for this question.
感谢您的帮助!
路由
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;
}])
推荐答案
你错过了在 postPromise resolve
You missed to add $stateParams dependency in postPromise resolve
代码
postPromise: ['posts', '$stateParams', function(posts, $stateParams){
这篇关于如何将 $stateParams 从 ui-router 传递给解析服务?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何将 $stateParams 从 ui-router 传递给解析服务?
基础教程推荐
- fetch 是否支持原生多文件上传? 2022-01-01
- npm start 错误与 create-react-app 2022-01-01
- Bootstrap 模态出现在背景下 2022-01-01
- Bokeh Div文本对齐 2022-01-01
- 在 contenteditable 中精确拖放 2022-01-01
- 检查 HTML5 拖放文件类型 2022-01-01
- Fabric JS绘制具有活动形状的多边形 2022-01-01
- 如何添加到目前为止的天数? 2022-01-01
- 即使用户允许,Gmail 也会隐藏外部电子邮件图片 2022-01-01
- 原生拖动事件后如何获取 mouseup 事件? 2022-01-01
