首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >$state参数为空

$state参数为空
EN

Stack Overflow用户
提问于 2015-06-11 17:29:03
回答 1查看 778关注 0票数 4

我有个奇怪的问题我不明白:

我使用的是ui-router。为什么我在app.run()中输入console.log时会得到这样的结果:

代码语言:javascript
复制
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属性,它突然变空了。

有人能解释这个吗?

顺便说一句。我也试过了,但结果一样

代码语言:javascript
复制
console.log($state["params"]); // output: Object {}
EN

回答 1

Stack Overflow用户

发布于 2015-06-16 12:16:00

我遇到了同样的问题。我认为可能是由于两件事: 1. $ stateParams在调用时不存在2. $ stateParams没有绑定到调用者。

总之,我解决了这个问题,如下所示:

代码语言:javascript
复制
.run(['$rootScope', function ($rootScope) {
        $rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) {
            $rootScope.toParams = toParams;
        });
}])

并在my object $rootScope.toParams中使用:

代码语言:javascript
复制
    params: {
            page: $rootScope.toParams.page,
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30776816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档