2016-03-25 123 views
1

這是現在我的應用程序結構:AngularJs EXEC命令

的index.html

<html ng-app="employeeApp"> 
    <body ng-controller="indexController as indexCtrl"> 
     <div ng-view> 
       <div ng-init="indexCtrl.validateUser()"></div> 
      </div> 
    </body> 
</html> 

indexController的

function indexController() { 
    console.log('indexController'); 
} 

employeeController

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: '/' 
    }); 
} 
})(); 
+0

您需要提供更多的代碼。在哪裏爲'employeeController'路由代碼和查看代碼? –

回答

1

通常代碼開始,爲了執行它的裏寫到。我的意思是如果employeeController放置在indexController以上,他的代碼將首先啓動。

但實際上它是沒有必要考慮控制器的加載順序。 真的,無論控制器開始執行哪個命令,您的代碼都應該工作

在正常情況下,一個頁面(或ng-view的視圖)應該只有一個控制器在同一時間。

在這種情況下,你可以添加初始化函數直接在controlers:

function myController($scope) { 

    (function init() { 
     console.log('myController'); 
    })(); 

} 
+0

Thankyou,但我怎麼能用每個請求觸發indexController? – Jamie

+0

你爲什麼關心對控制器的請求?我想明白。通常控制器應該只加載一次(直到你重新加載頁面) –

+0

你知道,最好只使用控制器「頁面」(或「視圖」,如果你使用ng-view而不是HTML代碼塊)。如果你需要一些特殊的HTML代碼塊,你應該把它作爲指令包裝起來。 –