<li ui-sref=".overview"
ui-sref-active="currentState"
ui-sref-opts="{reload:true}">Flavors</li>
配置:
.state('azure.overview', {
url:'/azureOverview',
templateUrl :'partials/azure/azureOverview.html',
controller : 'azureOverviewCtrl'
})
controller $scope.init() { }
我使用过此代码片段,但我的父状态也在重新加载,但我只想重新加载子状态
答案 0 :(得分:2)
@Lakshmi你可以在这里得到答案:
从0.2.14开始,您还可以选择重新加载当前状态,而不是它的父级。
因此$state.go(people.search, {}, {reload: true});
会重新加载people
州以及所有孩子。
虽然$state.go(people.search, {}, {reload: "people.search"});
不会重新加载people
州,但会重新加载people.search
及其子级。
答案 1 :(得分:1)
以前,对于这个问题:in ui-router, how to re-resolve only the most local state?,我创建了this plunker
表明,我们可以使用params : {}
来定义状态参数,该参数不在网址中..但可以用作&#34;更改触发器&#34; ,强制只是一个要重装的孩子状态。
Here我们可以看到这些状态:
.state('azure', {
url: "/azure",
templateUrl: 'tpl.azure.html',
controller: 'azureOverviewCtrl',
})
.state('azure.overview', {
url: "/overview",
params: { updater : 1, },
templateUrl: 'tpl.overview.html',
controller: 'OverCtrl',
})
现在,我们可以创建此重新加载链接,该链接只会发送递增的更新程序编号:
<li ui-sref-active="blue">
<a ui-sref="azure.overview({updater: ($stateParams.updater + 1) })"
>Flavors <b>reloading</b></a></li>
通过这种增量,我们可以确定,重新加载链接 - 重新加载这个子状态
检查here
答案 2 :(得分:0)
ui-router的原生内置功能是:
在儿童之间导航时,将一个子状态转换为另一个孩子,父母永远不会重新加载
除非我们明确改变内置行为,例如通过装饰器,你通过这些选项强制重新加载:
{ reload: true}
您还可以在这篇文章中找到类似的解决方案 AngularJS UI Router $state reload child state only