AngularJs执行命令



这是我现在的应用程序结构:

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');
   })();
}

最新更新