【问题标题】:Can't access current $stateParams from a global controller that's not attached to one state?无法从未连接到一个状态的全局控制器访问当前的 $stateParams?
【发布时间】:2014-09-08 21:38:04
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: angularjs angular-ui-router


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-24
      • 2020-12-18
      • 1970-01-01
      • 2011-07-05
      • 2016-08-28
      • 1970-01-01
      相关资源
      最近更新 更多