Angular - 路由解决服务问题

时间:2016-07-26 18:26:47

标签: javascript angularjs

我正在进行角度应用。

在当前构建中 - 有一个控制器在用户按下按钮时被调用 - 它打开一个模态窗口并按原样填充内容。

我正在尝试删除模式并重新配置应用程序,以便它转到新页面

第一页是人员列表/people 当您点击某个人时,它会转到/people/view/34323

这样的页面

我正在尝试像这样配置app stateprovider堆栈:

$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
        }
    }
})

这将创建基本页面......但是现在用于此控制器的服务现在没有。

好像没有将id传递给resolve函数,就好像persondata then,承诺没有回调?

1 个答案:

答案 0 :(得分:1)

$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问题。