Не удалось создать экземпляр контроллера Angular New Router
Я использую новый маршрутизатор Angular для 1.4, и он выдает ошибку при создании простого контроллера для компонента:
angular.module('app.campaigns',['security', 'ngNewRouter'])
.controller('CampaignsController', ['authService', '$rootScope', CampaignsController]);
function CampaignsController (authService, $rootScope) {
console.log ('this is campaigns controller');
this.currentUser = $rootScope.authService.currentUser;
this.authService = $rootScope.authService;
this.logout = authService.logout;
}
Я пытался без введения $ rootScope и тоже самое. Что я делаю неправильно? Очень похожий компонент работает как шарм, но это не так.
1 ответ
Вот последний пример использования нового маршрутизатора с Angular 1.5, для 1.4 вы не сможете использовать component(). Я думаю, что если вы не добавите его самостоятельно, это всего лишь директива обертки вокруг.
Вы должны использовать angular_1_router.js, созданный из проекта angular2, вместо установки пакета angular-new-router (до его обновления). В приведенном ниже примере они используют angular 1.5 и исправили его, чтобы вы могли использовать компоненты (), дочерние маршруты и т. Д.
проверьте ссылку на полный рабочий пример: http://plnkr.co/edit/N3YP3dKMuljpZ6mWsVBT?p=preview
app.js
angular.module('app', ['ngComponentRouter', 'dialog', 'heroes', 'crisis-center'])
.config(function($locationProvider) {
$locationProvider.html5Mode(true);
})
.run(function($router) {
$router.config([
{ path: '/...', name: 'App', component: 'app', useAsDefault: true }
]);
$router.navigate(['App']);
})
.component('app', {
template:
'<nav>\n' +
' <a ng-link="[\'CrisisCenter\']">Crisis Center</a>\n' +
' <a ng-link="[\'Heroes\']">Heroes</a>\n' +
'</nav>\n' +
'<ng-outlet></ng-outlet>\n',
$routeConfig: [
{path: '/crisis-center/...', name: 'CrisisCenter', component: 'crisisCenter', useAsDefault: true},
{path: '/heroes/...', name: 'Heroes', component: 'heroes'},
{path: '/disaster', name: 'Asteroid', redirectTo: ['CrisisCenter', 'CrisisDetail', {id:3}]}
]
});