我在服务器端使用 Node 和 Express,在客户端使用 Angular。
但我无法实现 Angular 客户端路由。我的 Angular 路由器如下所示:
app.config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/blogs', {
templateUrl: 'partials/blogs',
controller: 'BlogController'
}).
when('/news', {
templateUrl: 'partials/news',
controller: 'NewsController'
}).
otherwise({redirectTo: '/'});
}]);
这是我的服务器路由:
app.use('/',routes.index);
app.use('/partials/:filename',routes.partials);
还有我的index.js:
exports.partials = function(req, res){
var filename = req.params.filename;
if(!filename) return;
res.render("partials/" + filename );
};
exports.index = function(req, res){
res.render('index');
};
但是我没有显示部分内容,而是获取每个 URL 的索引页
我做错了什么?
最佳答案
您必须创建这样的路线:
router.get('*', function(req, res){
res.render('layout');
});
在layout.jade中你可以初始化你的路由:
script(src='https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.min.js')
script(src='https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.5/angular-route.js')
script(src='https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-resource.min.js')
script(src='/javascripts/app.js')
应用程序.js:
var app = angular.module('app', ["ngRoute"]);
app.config(['$routeProvider', function($routeprovider){
$routeprovider.
when('/', {
template: 'Ok'
})
}]);
关于javascript - Node.js 和 Express 上使用 Angular 进行客户端路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32198051/