我正在开发一个 Angular 应用程序。
在当前版本中 - 当用户按下按钮时会调用一个 Controller - 它会打开一个模式窗口并填充内容。
我正在尝试删除模式并重新配置应用程序,以便它进入新页面
第一页是人员列表/people
当你点击一个人时,它会转到类似 /people/view/34323
我正在尝试像这样配置应用程序状态提供程序堆栈:
$stateProvider
.state('people-view', {
url: "/people/view/:id",
templateUrl: "partials/people/people-view.html",
controller: personDialogController,
resolve: {
politicservice:function(personservice){
personservice.getPolitics(id).then = persondata.data;
}
biography:function(personservice){
personservice.getBio(id).then = persondata.data;
}
dialogueId:function(personservice){
//id
}
}
})
这将创建基本页面...但以前适用于此 Controller 的服务现在不再适用。
就好像 id 没有被传递到解析函数中,并且好像 persondata
then
,promise 没有回调?
最佳答案
将 $stateParams
传递给解析函数:
$stateProvider
.state('people-view', {
url: "/people/view/:id",
templateUrl: "partials/people/people-view.html",
controller: personDialogController,
resolve:
politicservice:function(personservice, $stateParams){
return personservice.getPolitics($stateParams.id);
}
biography:function(personservice, $stateParams){
return personservice.getBio($stateParams.id);
}
dialogueId:function(personservice, $stateParams){
//$stateParams.id
}
})
$stateParams
将包含 url 字符串中定义的所有参数的对象。请参阅this问题以获取更多信息。
关于javascript - Angular - 路由解决服务问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38597334/