2016-03-25 4 views
1

Dies ist meine App-Struktur jetzt:AngularJS exec Ordnung

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

Wenn ich in meine Konsole schaue, wird zuerst die employeeController abgefeuert. Warum das?

--EDIT--

Strecke Datei

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

Sie benötigen mehr Code zur Verfügung zu stellen. Wo ist der Routencode und der Code für 'employeeController'? –

Antwort

1

beginnt in der Regel Code, um ausführt, dass es geschrieben ist. Ich meine Wenn employeeController über indexController platziert, wird sein Code zuerst gestartet.

Aber eigentlich ist es kein Punkt zu Controller-Ladereihenfolge denken. Wirklich, Sie sollten Code arbeiten, egal welche Reihenfolge Controller starten

Im Normalfall eine Seite (oder ng-view 's Ansicht) sollte nur einen Controller zur gleichen Zeit haben.

Und in diesem Fall können Sie init-Funktionen direkt in controlers hinzufügen:

function myController($scope) { 

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

} 
+0

Danke, aber wie könnte ich den indexController bei jeder Anfrage auslösen? – Jamie

+0

Warum interessieren Sie sich für Anfragen an den Controller? Ich will verstehen. Normalerweise sollte der Controller nur einmal geladen werden (bis Sie die Seite neu laden). –

+0

Sie wissen, es ist besser, Controller nur für "page" zu verwenden (oder "view", wenn Sie 'ng-view' verwenden, aber nicht für HTML-Code)). Wenn Sie einige spezielle HTML-Code-Block benötigen, sollten Sie es als Direktive umbrechen. –