Angularjs 角节点路由
我在服务器上安装了节点,在客户端安装了Angular 角度路线:Angularjs 角节点路由,angularjs,node.js,Angularjs,Node.js,我在服务器上安装了节点,在客户端安装了Angular 角度路线: var todoApp = angular.module('todoApp', ['ngResource', 'ngRoute', 'ngCookies']) .config(function ($routeProvider, $locationProvider) { $routeProvider.when('/', { templateUrl: 'templates/index.h
var todoApp = angular.module('todoApp', ['ngResource', 'ngRoute', 'ngCookies'])
.config(function ($routeProvider, $locationProvider) {
$routeProvider.when('/', {
templateUrl: 'templates/index.html'
});
$routeProvider.when('/todo',
{
templateUrl: 'templates/todo.html',
controller:"TodoController"
});
$routeProvider.when('/admin',
{
templateUrl: 'templates/admin.html'
});
$routeProvider.otherwise({redirectTo: '/'});
$locationProvider.html5Mode(true);
});
在服务器端,我为“/todo”定义了一个路由
app.use('/todo', todo);
我的待办事项文件是
var express = require('express'),
router = express.Router(),
todo = require('../controllers/todo'),
winston = require('../../server/config/winston');
// GET users listing.
router.get('/', todo.list);
router.post('/:id', todo.save);
router.delete('/:id', todo.delete);
module.exports = router;
我的问题
如果我转到主页,它工作正常,数据会与加载的页面一起显示,即如果我输入localhost/3000/则默认情况下它会重定向到/todo,并且工作正常
若我输入localhost/3000/todo,那个么我只能在从服务器返回的数据页面上看到纯文本,而不能在上面看到HTML页面
我不知道有什么问题
编辑
我的待办事项控制器
var db = require('../config/sequelize'),
StandardError = require('standard-error');
var winston = require('winston');
exports.save = function (req, res) {
if (!req.user) {
return res.send("Please Login");
}
console.log("in create", req.body);
var _task = {
task: req.body.task,
UserId: req.user.id
}
console.log(req.user);
db.Todo.create(_task).then(function (todo) {
if (!todo) {
return res.send(new StandardError('Cannot insert'));
} else {
console.log(req.body);
return res.send(todo);
}
}).catch(function (err) {
return res.send({
errors: err,
status: 500
});
});
};
exports.list = function (req, res) {
if (!req.user || req.user.isAdmin) {
return res.redirect('/');
}
console.log(db.User);
db.Todo.findAll({where: {UserId: req.user.id}}).then(function (todo) {
console.log(todo);
res.jsonp(todo);
}).catch(function (err) {
console.log(err)
res.send([{task: "No Data"}]);
});
};
exports.delete = function (req, res) {
db.Todo.destroy({
where: {
id: req.params.id,
UserId: req.user.id
}
}).then(function (response) {
console.log("deleted");
res.send(response + " Record Deleted");
//db.Todo.findAll().then(function (todo) {
// res.jsonp(todo);
// }).catch(function (err) {
// return res.render('error', {
// error: err,
// status: 500
// });
// });
});
};
可能是您与角度路由和服务器路由混淆了。
使用localhost/#/todo用于todo模板和调用服务器的本地主机/todo可能与角度路由和服务器路由混淆。
使用localhost/#/todo对于您的todo模板和调用服务器的本地主机/todo请包含“../controllers/todo'I added my todo controller请包含”../controllers/todo'I added my todo controllery是否有效。事实证明,当节点中的路由和角度相同时,节点路由优先于角度路由…@WaqasNoor在这种情况下没有优先级。触发节点和角度路由的URL不同。请注意/#!/在有角度的路线上是的,它起作用了。事实证明,当节点中的路由和角度相同时,节点路由优先于角度路由…@WaqasNoor在这种情况下没有优先级。触发节点和角度路由的URL不同。请注意/#!/以有角度的路线