我有个奇怪的问题我不明白:
我使用的是ui-router。为什么我在app.run()中输入console.log时会得到这样的结果:
app.run(function ($state) {
console.log($state); // output: Object{params:{sitename:"mysite"},current:{...},... other properties}
console.log($state.params); // output: Object {}
首先我打印出$state,它有一个"params“属性,这是一个对象,它有一个名为"sitename”的属性。然后我打印出$state.params属性,它突然变空了。
有人能解释这个吗?
顺便说一句。我也试过了,但结果一样
console.log($state["params"]); // output: Object {}
发布于 2015-06-16 12:16:00
我遇到了同样的问题。我认为可能是由于两件事: 1. $ stateParams在调用时不存在2. $ stateParams没有绑定到调用者。
总之,我解决了这个问题,如下所示:
.run(['$rootScope', function ($rootScope) {
$rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) {
$rootScope.toParams = toParams;
});
}])
并在my object $rootScope.toParams中使用:
params: {
page: $rootScope.toParams.page,
}
https://stackoverflow.com/questions/30776816
复制相似问题