我使用的是Ember-Data和Ember-CLI,我有两个Ember模型;
clip.js
export default DS.Model.extend({
name: DS.attr('string'),
scene: DS.belongsTo('scene')
});scene.js
export default DS.Model.extend({
clip: DS.belongsTo('clip')
});剪辑是独立地从场景中加载的,所以当场景下来时,JSON看起来是这样的;
{scenes: [{id: 1, clip_id: 5}, {id:2, clip_id:10}]}clip_id确实对应于已经加载到Ember中的剪辑。
我想要做的是叫scene.clip.name
有人能推荐我需要做些什么才能启动和运行吗?
发布于 2014-06-18 14:17:47
您需要将剪辑标记为异步。此外,您所使用的foo_id格式与DS.RESTAdapter是不标准的。它只是期望foo。您可以使用DS.ActiveModelAdapter,它确实期望它以这种格式出现。
clip: DS.belongsTo('clip', {async:true})然后它是一个异步属性,所以您需要在第一次访问它时使用then (或者任何时候都可以,如果您想的话,或者不能保证它已经被获取了)。
scene.get('clip').then(function(clip){
console.log(clip.get('name'));
});https://stackoverflow.com/questions/24284915
复制相似问题