如何制作state ui provider数据对象
.state('app', {
controller: 'Ctrl',
templateUrl: 'app/widgets/views/widget.html',
data: {
data: 'property'
}
})
我试过这样做,但它不起作用。
.state('app.list', {
params: {
dataAssign: null,
},
controller: 'OtherCtrl',
templateUrl: 'app/widgets/views/list.html',
data: {
data: this.params.dataAssign
}
})
基本上我需要从 $state.go() 函数分配数据。而且好像也没有办法。它需要是数据对象,因为我使用的是 angular-ui-router-styles 插件,它使用数据对象来获取样式表的路径。
有办法吗?
最佳答案
我不确定这是否有效,但您可以尝试以下操作:
使用State Change Events拦截状态转换
$rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState) {
toState.data.data = toParams.dataAssign;
});
然后你会像这样调用 $state.go()
:
$state.go('app.list', {dataAssign: someData});
从逻辑上讲,它似乎应该起作用,但如果不起作用,请告诉我。
更新:
请注意,所有状态转换都会发生这种情况。因此,如果您不希望出现这种情况,则可以使用 toState.name
检查状态名称。
关于javascript - angular-ui-router 更改 $state.go() 上的数据对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34355951/