我想运行一个将字符串返回到 data
对象的方法。
例如,如果该方法返回的结果是:“Richard Stallman”,我希望在我的 Controller 上使用:this. $state.current.data.title
等于“Richard Stallman”
就像我只是这样做一样:
data: {
title: "Richard Stallman"
}
我的状态:
.state({
name: 'agent.production.myiad.project.detail.edit.headers.overlay.comment',
url: '/comment',
data: {
title: (project, IadProjectUtilService) => {
IadProjectUtilService.getProjectName(project)
}
},
component: 'iadAgentMyIadComment'
})
最佳答案
这通常通过 resolve
block 来解决。
.state({
name: 'agent.production.myiad.project.detail.edit.headers.overlay.comment',
url: '/comment',
resolve: {
title: (project, IadProjectUtilService) => {
IadProjectUtilService.getProjectName(project)
}
},
component: 'iadAgentMyIadComment'
});
...
uirouter 将等待 IadProjectUtilService.getProjectName(project)
返回的 Promise,然后将其绑定(bind)到组件的 title
绑定(bind)。
.component('iadAgentMyIadComment', {
bindings: { title: '<' },
controller: IadAgentMyIadCommentController,
});
以下是有关路由到组件的指南:https://ui-router.github.io/guide/ng1/route-to-component#resolve-bindings
关于javascript - Angular 1/ui-router - 将函数执行到数据对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46449911/