为什么 AppController.$routeConfig 未定义?

Why is AppController.$routeConfig undefined?

我正在尝试学习本教程:

https://angular.github.io/router/getting-started

为什么 AppController.$routeConfig 未定义?

angular.module('app', ['ngNewRouter', 'app.home'])
  .controller('AppController', ['$router', AppController]);

AppController.$routeConfig([
  {path: '/', component: 'home' }
]);
function AppController ($router) {}

我的html:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <base href="/">
  <title>My app</title>
</head>
<body ng-app="myApp" ng-controller="AppController as app">
<div ng-viewport></div>

<script src="node_modules/angular/angular.js"></script>
<script src="node_modules/angular-new-router/dist/router.es5.js"></script>
<script src="./components/home/home.js"></script>

<script src="app.js"></script>
</body>
</html>

试试这个,对我有用:

AppController.$routeConfig = [
  { path: '/', component: 'home' }
]

我认为这可能是教程中的错误。 $routeConfig 是一个 属性,不是一个函数。

我发现本手册适用于 angular 1.5,但作者使用 angular 1.3 http://www.sitepoint.com/introduction-futuristic-new-router-angularjs/

这是适合您的代码:

angular.module('app', ['ngNewRouter', 'app.home'])
  .controller('AppController', ['$router', function($router){
  $router.config([
    { path:'/', redirectTo:'/home' },
    { path:'/home', component:'home' },
    { path:'/example', component:'example' }
  ]);

  this.name='visitor';
}]);

并在 html 中将这两行更改为:

<body ng-controller="AppController">
<div ng-viewport></div>