每次我通过以下链接更改路径
<li><a href="#/home">Home</a></li>
路由器定义中视图的控制器再次运行。
config(['$routeProvider', '$locationProvider',
function($routeProvider, $locationProvider) {
// $locationProvider.hashPrefix('!');
$routeProvider.when('/home', {
templateUrl: 'partials/home.html',
controller: 'mainCtrl'
});
$routeProvider.when('/test', {
templateUrl: 'partials/test.html',
controller: 'testCtrl'
});
$routeProvider.otherwise({
redirectTo: '/home'
});
}
]);
我不认为这是默认行为(我在文档中没有提到它),但是我看不出问题是什么。
P.S。
我没有为我的模板中的任何DOM元素分配ng-controller,因为我看到其他人有类似的问题,这就是问题所在。
答案 0 :(得分:3)
这是默认行为 基本上,控制器是用于参数Angular Scope的函数。因此,每次打开与控制器关联的页面时都需要调用它。每次页面导航时,angular都会创建新的范围。