angularjs – ui-router – 重新加载当前状态
我想知道如何“重新加载”当前状态,传入一个新的参数,以便我的控制器被重新初始化。
我试图在我的边栏控件中实现搜索,而最初的搜索使用$ state.go来转换到我的新状态,如下所示: if ($event.type === 'click' || $event.keyCode === keyCodes.enter) { $state.go("people.search",{ search: vm.searchText }); 如果我在应用程序中处于另一个状态,并且上面的代码运行,一切正常。所以,我作为一个参数传入搜索词,$ state.go将我的状态转换到people.search状态,我的人员控制器(包含搜索功能)被命中。但是一旦我在people.search状态,并尝试使用搜索控件,人员控制器代码不再受到打击,参数没有被更新。 我尝试修改代码: $state.go("people.search",{ search: vm.searchText },{ location: "replace" }); 现在当我处于当前状态时,这将更新我的新搜索字词的URL,但是控制器代码没有触发。 我需要一种强制重新加载与我目前相同状态的方法,以便新的搜索参数得到更新,人员控制器代码重新运行。 如何重新加载当前状态?
内部javascript您可以像这样调用当前状态:
$ state.go(‘。’,{search:vm.searchText}) 从版本1.2.5开始,您也可以只使用重新加载状态: $ state.reload() 这很好,但我更喜欢一种方式来重新加载一个指令中不同参数的状态。 所以我创建了我自己的指令uiSrefParams: 例 <span>Change language:</span> <a ui-sref-params="{lang: 'en'}">english</a> <a ui-sref-params="{lang: 'ru'}">russian</a> 希望有帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |