我使用mean.js(http://meanjs.org/generator.html)样板作为应用程序的起点,因为我喜欢内置的身份验证/授权。
但是,我在使用HTML5时遇到了问题。
在我的角度应用程序中,我设置了HTML5(true)
,我知道我需要为所有其他重定向请求设置一条捕获路径。
我在快递上有以下路由作为root和catchall:
///这是app / controllers / core.server.controller:
exports.index = function(req, res) {
res.render('index', {
user: req.user || null,
request: req
});
};
exports.catchall = function(req, res){
res.redirect('/');
};
然后是路由本身
'use strict';
module.exports = function(app) {
// Root routing
var core = require('../../app/controllers/core.server.controller');
app.route('/').get(core.index);
app.route('*').get(core.catchall);
};
现在,当我输入的路径只是垃圾时,页面重定向没有问题,但是当我输入存在于express中的路由时(没有关联的视图,我正在获取服务器输出)。
这是我所说的快递路线:
'use strict';
/**
* Module dependencies.
*/
var users = require('../../app/controllers/users.server.controller'),
articles = require('../../app/controllers/articles.server.controller');
module.exports = function(app) {
// Article Routes
app.route('/articles')
.get(articles.list)
.post(users.requiresLogin, articles.create);
// Finish by binding the article middleware
app.param('articleId', articles.articleByID);
};
我在Express / Node中没有与此相关的视图 - 只是在Angular中。
因此,当我通过链接导航到localhost:3000 /文章时,角度管理路线并呈现正确的角度模板。
但是,当输入localhost:3000 / articles并按回车键(或刷新此网址上的浏览器)时,我会收到以下信息:
[{"_id":"5555ede9dac9d0d99efae164","user":{"_id":"5554fa21141c5aef7b0354d7","displayName":"heny as"},"__v":0,"content":"This is the blurb for him","title":"VP, Global Marketing","created":"2015-05-15T13:00:25.177Z"}]
但我希望从角度
获取渲染的页面模板有人可以帮忙吗?
答案 0 :(得分:2)
这是因为你调用服务器url(与ajax调用相同),你需要
服务器端的拦截请求类型(ajax | not ajax)和重定向都没有ajax到根路径(/)和angular将使用ajax来获取客户端的文章。
定义单个根目录(/)以便为您的单个Web应用程序提供服务,并使用(/ api / ...)来处理所有的ajax请求。