In this plunk,您有两个ui路由器状态,即父级和子级。当通过单击链接调用子项时,由于它具有reload: true
选项,因此始终会重新加载该子项。很好,但是问题在于父状态也被重新加载。尝试多次单击“Populate 11”链接,您会看到父时间戳也发生了变化。
我怎样才能只给 child 装弹?
Javascript:
var app = angular.module("app", ['ui.router']);
app.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/");
$stateProvider
.state('state1', {
templateUrl: 'state1.html',
controller: function($scope) {
$scope.theTime1 = Date.now();
}
})
.state('state1.state11', {
templateUrl: 'state11.html',
controller: function($scope) {
$scope.theTime11 = Date.now();
}
});
});
最佳答案
实际上非常简单。
不要使用reload
,因为它确实可以满足您的要求。它会重新加载该路线的所有内容。
而是在子路由中添加一个参数,每次单击链接时,请确保更改该参数。这将强制重新加载子状态。
我用一个例子更新了您的朋克。我只是添加了num
参数,并在每次单击链接时增加了count
变量。
http://plnkr.co/edit/qTA39rrYFYUegzuFbWnc?p=preview