我正在使用新的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; }
解决方法
这里是使用angular 1.5的新路由器的最新示例,对于1.4你将无法使用component()我认为除非你自己添加它,它只是一个包装指令虽然.
你应该使用angular2项目构建的angular_1_router.js而不是安装angular-new-router包(直到它被更新)
在下面的示例中,他们使用角度1.5并修复它,以便您可以使用components()和子路径等.
检查完整工作示例的链接:
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}]} ] });