【发布时间】:2014-09-29 02:34:50
【问题描述】:
当第一次点击一个状态时,拥有“ui-view”属性的div被替换为该状态的“模板”。但是,当我再次单击相同的状态时,它的控制器不会重新加载。我怎样才能让这个控制器再次加载?
例如,假设我有以下导航菜单:
<nav>
<a ui-sref="state1">State 1</a>
<a ui-sref="state2">State 2</a>
</nav>
我的“ui-view”内容如下:
<div ui-view></div>
我的状态描述如下。当我单击导航菜单上的“State1”时,我希望在developer console 上观察到文本"Ctrl 1 loaded"。如果是第一次,那么我会观察该文本。但是,当我重新点击相同的链接时,控制器没有再次加载,即我无法在控制台上看到文本"Ctrl 1 loaded" 显示两次。
myApp.config(function ($stateProvider, $urlRouterProvider){
$stateProvider.state("state1", {
url: "#",
template: "<p>State 1</p>",
controller: "Ctrl1"
}).state("state2", {
url: "#",
template: "<p>State 2</p>",
controller: "Ctrl2"
});
});
为什么?你有什么想法吗?
Here is the JSFiddle 这个问题。
【问题讨论】:
标签: angularjs angular-ui angular-ui-router