Ember.js - 余烬数据不返回模型
Ember.js - Ember Data not returning a model
我正在使用Ember Data来检索包含歌曲的播放列表。代码为:
App.PlaylistRoute = Em.Route.extend({
model: function(params) {
var plist = this.store.find('playlist', params.id);
console.log(plist);
return [];
}
})
App.Playlist = DS.Model.extend({
beats: DS.hasMany('beat')
});
App.Beat = DS.Model.extend({
name: DS.attr('string')
});
此代码的问题在于它工作并返回数据,但在一个模糊的对象中,而不是在模型中。然后我不能做plist.get('beats')
或plist.get('id')
因为它只是返回undefined
.JSON数据非常简单:
{
"playlist": {
"id": "popular-beats",
"beats": [
"1",
"2"
]
},
"beats": [
{
"id": "1",
"name": "Name"
},
{
"id": "2",
"name": "Another Name"
}
]
}
当我在控制台中记录数组时,返回的对象如下:
__ember1383247403867: "ember293"
__ember1383247403867_meta: e
_super: undefined
content: s
isFulfilled: true
toString: function (){return e}
__proto__: Object
如果我向下钻取content._data
我会找到beats
数组 - 因此数据已成功加载,但它没有返回我期望的正确模型。
store.find() 不会立即返回模型对象,它返回 promise,将来将包含 'beats' 和 'id' 属性。 因此,您可以在模板中使用模型,并且模型更新时模板将更新。
http://emberjs.jsbin.com/oTEvIwe/3 - 这是一个基于您的路由器和型号的 Ember 应用程序。在控制台中,您可以看到 plist.get('beats') 在 router#model 中未定义,但 HTML 页面包含它。
如果你想在路由器中使用模型进行操作,你可以使用setupController。
http://emberjs.jsbin.com/oTEvIwe/3/edit - 来源。
更多关于承诺 - http://emberjs.com/guides/routing/asynchronous-routing/
相关文章:
- Angular,函数在(模型)工厂中返回值
- 无法在mvc视图中使用ajax调用获取操作返回的模型对象列表
- Aurelia绑定-点击按钮返回查看模型
- 续集返回未定义的模型自定义方法
- “渲染骨干模型视图”返回未定义的结果
- Node.js应用程序中从模型层异步返回数据
- Ember.js返回相同的模型
- 保存模型返回错误
- Ember.js:路由返回多个模型,包括一个promise,给出错误
- 在控制器中将 ng 模型值返回为空的指令
- 在视图模型中使用 MVC 视图返回 JsonResult 数据
- 挖空映射对象未由杜兰达尔视图模型返回
- CanJS 模型查找全部返回重复项的列表
- 在我的情况下,ng 模型返回未定义
- Ember.js - 余烬数据不返回模型
- 为什么我的模型中的默认属性返回未定义
- 执行 Backbone where 和 findWhere 按值或引用返回模型
- 主干筛选器集合,用于按名称返回模型
- EmberJS返回模型前的处理
- 在Ember中返回模型属性的承诺