如何在ember.js-data中处理REST调用的响应

时间:2013-04-15 11:43:16

标签: rest ember.js ember-data

我使用RESTAdapter设置Ember,以便通过RESTfull API检索我的模型。

App.Store = DS.Store.extend({
    revision: 12,
    adapter: DS.RESTAdapter.create({ 
    url : 'http://127.0.0.1:5000',
    // In order to allow cross domain requests
    ajax: function(url, type, hash) {
        jQuery.ajax(url)

        },
    }),
});

App.File = DS.Model.extend({
    content: DS.attr('string'),
    name: DS.attr('string'),
});

在我的路线中,我希望通过REST调用获取特定文件并将其传递给我的模板。

 App.FilesRoute = Ember.Route.extend({
        model: function() {
            var file = App.File.find("49898c14b49eab87597d3195b500107e")
            console.log(file)
            return file  
        }
    });

但是当我退回文件时,Ember给我一个空白页面。当我返回一个随机字符串时,我的模板将加载。

Chromium开发人员工具的“网络”标签向我显示了对http://127.0.0.1:5000/files/49898c14b49eab87597d3195b500107e的调用的响应:  {"file": {"content": null, "name": "Titl"}} 这是我预期的回应。但是Ember把它包裹在一个复杂的对象中: enter image description here

我做错了什么?

1 个答案:

答案 0 :(得分:1)

“复杂”对象是DS.Model实例。在你的情况下,它应该是一个App.File。

例如,您可以通过调用此对象上的.get('name')来访问检索到的值。

此外,App.FilesRoute希望您返回一个数组,而不是单个实例。