我正在开发一个带有MEAN堆栈的Angular应用程序,所以假设你有一条快速路由对数据库进行查询,结果将在响应中发送:
app.get('/api', function(req, res){
Todo.find({}, "", function(err,todos){
if (err)
res.send(err);
res.json(todos);
});
});
在客户端:
控制器:
...
Todo.get().success(function(data){ //i got the service with the $http call
$scope.todos = data;
});
当我去localhost:8080 /#/ api时,我可以看到我的部分内容和我要求的数据。
我遇到的问题是,如果我省略了标签,我就看不到部分标签,我只看到JSON格式的响应数据。
我也尝试使用html5模式,但如果我重新加载我得到了相同的行为。
关于如何避免这种行为的任何想法?
答案 0 :(得分:1)
#
之后的任何内容都不会发送到服务器。因此,当您转到localhost:8080/#/api
时,expressjs只会看到/
的请求并返回AngularJS模板。 AngularJS然后使用/#/api
路由浏览器页面,Todo.get()
调用localhost:8080/api
并且(我假设)调用/api/todos
,从数据库返回数据。
这就是为什么在省略哈希和使用html5模式时只获取数据的原因。
我建议您将API调用更改为:
/todos
- 从db
并将您的AngularJS路线更改为仅使用: {{1}} - 显示部分和请求的数据