我使用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把它包裹在一个复杂的对象中:
我做错了什么?
答案 0 :(得分:1)
“复杂”对象是DS.Model实例。在你的情况下,它应该是一个App.File。
例如,您可以通过调用此对象上的.get('name')
来访问检索到的值。
此外,App.FilesRoute
希望您返回一个数组,而不是单个实例。