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。
我尝试使用 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。