我有一个使用ember-pouch适配器的本地和版本的余烬数据应用程序远程存储。
当hasMany
方是多态时,我无法加载belongsTo
关系。我在async: true/false
方面使用过donstsave: true/false
和hasMany
个选项,但无济于事。
post
可以包含多个comments
。comment
可以包含多个comments
。comment
属于commentable
。// app/models/post.js
import DS from 'ember-data';
import { Model } from 'ember-pouch';
export default Model.extend({
DS.hasMany('comment', { inverse: 'commentable' });
});
// app/models/comment.js
import DS from 'ember-data';
import { Model } from 'ember-pouch';
export default Model.extend({
DS.belongsTo('commentable', { polymorphic: true });
DS.hasMany('comment', { inverse: 'commentable' });
});
调用post.get('comments')
不加载任何内容。但是,如果将注释分别加载到商店中,则post
能够正确呈现注释:
// In the console (being mindful that `post.get('comments')` returns a promise)
const post = store.findRecord('post', '123');
post.get('comments').get('length'); // => 0
store.findAll('comment');
post.get('comments').get('length'); // => 12
答案 0 :(得分:0)
在一个实验中对我有用的东西(尽管我在适配器中大量修改了ember-pouch)正在使用post.get('comments').content.length
,但是不要问我为什么会这样,是否应该那样。 ..
编辑:
似乎问题在于此时未加载数据。因此类似post.get('comments').then(function() {this.debug(post.get('comments').length}))
的东西可能会起作用。