这是我现在的应用程序结构:
index.html
<html ng-app="employeeApp">
<body ng-controller="indexController as indexCtrl">
<div ng-view>
<div ng-init="indexCtrl.validateUser()"></div>
</div>
</body>
</html>
索引控制器
function indexController() {
console.log('indexController');
}
员工控制器
function employeeController() {
console.log('employeeController');
}
如果我查看控制台,employeeController
将首先启动。为什么?
--编辑--
路由文件
function routeModule($routeProvider)
{
$routeProvider.when('/', {
templateUrl: '../views/login.html',
controller: 'authenticationController',
controllerAs: 'authenticationCtrl'
})
.when('/home', {
templateUrl: '../views/index.html',
controller: 'homeController',
controllerAs: 'homeCtrl'
})
.when('/werknemer/:id', {
templateUrl: '../views/employee/employee.html',
controller: 'employeeController',
controllerAs: 'employeeCtrl'
})
.otherwise({
redirectTo: '/'
});
}
})();
通常代码按照编写顺序开始执行。我的意思是,如果employeeController
位于indexController
之上,他的代码将首先启动。
但实际上,考虑控制器的负载顺序是没有意义的。实际上,无论哪个顺序的控制器开始执行,您的代码都应该是有效的
在正常情况下,一个页面(或ng-view
的视图)应该同时只有一个控制器。
在这种情况下,您可以在控制器中添加init函数:
function myController($scope) {
(function init() {
console.log('myController');
})();
}