由于某种原因,当我更改URL参数时,控制器和视图都没有重新加载。我所做的是打开 / events / 1 ,然后打开 / events / 2 ,并期望 currentDate 更新,但它没有:(
我的状态配置:
.state('events', {
url: "/events",
controller: 'EventsCtrl',
templateUrl: "Content/Directives/Navigator/navigator.html",
})
.state('events.event', {
url: "/{id:int}",
reload: true,
template: '{{currentDate}}'
});
我的控制器:
function NavigatorCtrl($scope) {
$scope.currentDate = new Date();
}
navigator.html:
<div class="row">
<h3>Navigator</h3>
<ui-view/>
</div>
为什么不更新?如何强制状态更新每个URL参数更改的视图?
注意,我写了“reload:true”但它可能没有效果,因为它通常在调用state.go()时用于选项。
ps:我知道我可以转换这个“$ scope.currentDate = new Date();”一个函数,但想知道描述的行为是否正常......
答案 0 :(得分:0)
您可以侦听位置更改,并在触发控制器后重新加载控制器。
$scope.$on('$routeChangeSuccess', function () {
$state.transitionTo($state.current, $stateParams, { reload: true, inherit: true, notify: true });
});
应该有效,但我没有在plunker中测试它。如果你可以提供我的应用程序的plunker我可以完成你的例子。希望,它会对你有帮助!