0

我有使用 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 数据文档中,他们说这应该向 url/todos 发送一个 http 请求 GET,所以在这种情况下:

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);
    });
});

它使用来自 npm 的 httpdispatcher 和绑定模块,并且可以工作,因为如果我在浏览器中键入:

//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”

有人可以帮助解决这个问题吗?

4

1 回答 1

2

你为什么使用文件:///?您需要通过服务器请求页面。

当 ember 查找待办事项时,它会检查域的根目录。通过 [address]/todos 的网址请求时。当您使用 file:/// 请求时,该请求将变为file:///D:/todos.

于 2013-06-28T16:17:15.883 回答