javascript - Node.js 和 Express 上使用 Angular 进行客户端路由

标签 javascript angularjs node.js express angularjs-routing

我在服务器端使用 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/

相关文章:

javascript - 根据单选按钮选择自动更新 .php 变量的值,无需提交或刷新

javascript - 单击外部关闭滑动菜单 Javascript

javascript - 在 Javascript/Reactjs 中使用 Fetch API 和 map() 显示 JSON 数据

angularjs - 拖放 Bootstrap 时的动态网格

javascript - Grunt 代码覆盖不起作用

Javascript 数组,查找并组合具有重复值的条目

ios - | AngularJS (ng1)/TS/PhoneGap |在 iOS 上 <select> 会显示错误的选项,但模型包含正确的选项

Angularjs,Ionic Framework - 导航回模态的选项

node.js - 一种高效地逐一检查集合中所有数据的方法(nodejs、mongoose)

Node : Unexpected behavior for console. timeEnd() 中的 JavaScript