我有使用LSAdapter的示例“todo”ember应用程序;现在我正在尝试使用RESTAdapter并从节点js获取json数据;
在Ember应用程序中,我已经完成了:
Todos.Store = DS.Store.extend({
revision: 13,
url: "http://127.0.0.1"
});
Todos.Todo = DS.Model.extend({
title: DS.attr('string'),
isCompleted: DS.attr('boolean')
});
这是主路线处理程序:
Todos.TodosIndexRoute = Ember.Route.extend({
model: function() {
return Todos.Todo.find();
}
});
在ember数据文档中,他们说这应该发送一个http请求GET到url / todos,所以在这种情况下:
http://127.0.0.1/todos
所以我用节点js制作了一个服务器:
dispatcher.onGet("/todos", function(req, res) {
bind.toFile('tmpl/todos.tpl', {
id: "1",
title: 'Just a try',
is_completed: "false"
}, function(data) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.end(data);
});
});
它使用httpdispatcher并绑定来自npm的模块,因为如果我在浏览器中输入:
//url in the browser
127.0.0.1/todos
我得到:
{ "todo": { "id": 1, "title": Just a try, "is_completed": false } }
但是如果我在浏览器中执行应用程序(URL:file:/// D:/Works/Web%20Resources/EMBER%20MVC%20FRAMEWORK/Prova_App/index.html),那么“只是试一试”就不是了。装; 使用chrome检查,在控制台选项卡中,我可以读取错误“无法加载资源文件:/// D:/ todos”
有人可以帮忙解决这个问题吗?
答案 0 :(得分:2)
为什么使用文件:///?您需要通过服务器请求页面。
当ember查找todos时,它会检查域的根目录。通过[地址] /待办事项的网址请求时。当您使用file:///请求变为file:///D:/todos
时。