Angular ngRoute 不适用于 Express 4

Angular ngRoute don't work with Express 4

我尝试使用 Angular 和 Express 4 设置客户端路由。 我使用指南 ngView 并且没有 Express 很好,但是当启用 Express 路由时,ngRoute 不起作用。我如何设置 Express 使其与 ngRoute 一起工作?

一点代码:

var app = angular.module('app', ['ngRoute']);

app.config(['$routeProvider', '$locationProvider',
  function($routeProvider, $locationProvider) {
    $routeProvider
      .when('/category/:catgegoryName', {
        templateUrl: 'category',
        controller: 'categoryController',
        controllerAs: 'category'
      })
      .when('/category/:catgegoryName/device/:deviceName', {
        templateUrl: 'device',
        controller: 'deviceController',
        controllerAs: 'device'
      })
      .otherwise({
        redirectTo: '/'
      });
    $locationProvider.html5Mode(true);
  }
]);

由于您配置了 HTML5 模式,您不需要在 Express 端复制相同的路由结构。相反,您需要确保服务器 始终 响应着陆页(通常 index.html),其中 Angular 应用程序已配置和引导。

所以对于说路由 /category/something 服务器仍然响应 index.html。然后Angular会解析URL,明白需要注入.when('/category/:catgegoryName', {...})路由对应的template和controller。