无法从未连接到某个状态的全局控制器访问当前的$ stateParams?

时间:2014-07-17 20:51:33

标签: angularjs angular-ui-router

我有一个带有搜索字段的导航栏。搜索到的文本会进入我的主要内容路径中的查询参数。我希望能够检查$ stateParams.search(我的搜索参数)并将搜索字段模型设置为等于当前参数,因此,例如,如果用户共享搜索的url链接,那么将填充该字段并且从用户体验的角度来看,用户将知道他们正处于搜索回报中。目前我的导航控制器直接绑定到正文。

<html>
    <body ng-controller="navCtrl">
        <nav><input type="text" ng-model="searchText"></nav>
        <ui-view></ui-view>
    </body>
</html>

如果我从我的mainCtrl(主内容控制器)检查从ui-router状态访问的$ stateParams,我会得到一个当前状态参数列表。每当我尝试从我的navCtrl访问它时,我得到一个空对象。

如何从“全局”控制器访问最新状态参数,或者如何以这种方式保持搜索栏文本同步?

1 个答案:

答案 0 :(得分:0)

所以我做了两件事来解决这个问题。首先,我将stateParam.search包装到超时函数中的范围变量赋值中,以允许$ stateParams实际加载的循环。然后我又开始分配$ stateChangeSuccess以允许帮助保持所有内容同步。