To stare pytanie, wydaje się, że mamy do czynienia z jajkiem kurzym, jeśli chcemy polegać na podstawowych możliwościach biblioteki.
Zamiast rozwiązać problem w fundamentalny sposób, zrobiłem obejście. Utwórz dyrektywę, która otacza całe ciało. Dawny.
<body ng-app="app">
<div mc-body>
Hello World
</div>
</body>
Teraz mc-body
musi zostać zainicjowany przed renderowaniem (raz), np.
link: function(scope, element, attrs) {
Auth.login().then() ...
}
Auth
jest usługą lub dostawcą, np.
.provider('Auth', function() {
... keep your auth configurations
return {
$get: function($http) {
return {
login: function() {
... do something about the http
}
}
}
}
})
Wydaje mi się, że mam kontrolę nad kolejnością ładowania początkowego, jest to po tym, jak zwykły program ładujący rozwiązuje całą konfigurację dostawcy, a następnie próbuje zainicjować mc-body
dyrektywę.
Wydaje mi się, że ta dyrektywa może wyprzedzać routing, ponieważ routing jest również wstrzykiwany za pośrednictwem dyrektywy ex. <ui-route />
. Ale co do tego mogę się mylić. Potrzebuje więcej badań.