В моем угловом приложении у меня есть основной вид, который изменяется в соответствии с маршрутом, а затем боковая панель, которая отображается независимо от того, что. Мой HTML выглядит следующим образом:Исправить состояние гонки с независимым контроллером AngularJS
<div id="container">
<div id="sidebar" ng-controller="SidebarCtrl">(sidebar code)</div>
<div ng-view id="content">Loading...</div>
</div>
И Javascript загружается в следующем порядке:
- Vendor.js (угловой, и т.д.)
- App.js (мое приложение)
SidebarCtrl определяется в App.js. Однако, когда угловые нагрузки видят директиву ng-controller
и пытаются назначить ее на боковую панель с места в карьер, что приводит к ошибке кэша кеша app.js, «аргумент SidebarCtrl не является функцией». Я имел в виду иметь боковую панель в виде отдельного файла и загрузки его перед Vendor.js, но на боковой панели зависит от некоторых услуг, определенных в App.js (а именно, мой пользовательский сервис аутентификации):
MyApp.controller('SidebarCtrl',
['$scope', '$location', 'auth', function($scope, $location, auth) {
(...)
}])
Так как Я не в порядке.
Я уверен, что есть лучший способ настроить это ... любые идеи? Могу ли я определить SidebarCtrl
как простую функцию, но все же имею доступ к услуге auth
?
Благодаря
Вы используете 'angular.bootstrap' или' нг-app' для инициализации приложения? –
Я использую ng-app - я видел ссылки на angular.bootstrap, но не совсем уверен, что это делает. Если я выберу ng-приложение, могу ли я использовать angular.bootstrap() для запуска приложения в теге
? – jraedeДа, после загрузки вашего приложения вы можете вызвать 'angular.bootstrap (angular.element ('body'), ['myApp']). –