Javascript 余烬发现现有的有许多模型

Javascript 余烬发现现有的有许多模型,javascript,ember.js,ember-data,Javascript,Ember.js,Ember Data,如何在不抛出错误的情况下获取(或者更确切地说检查是否存在)属于Ember Data(v1.13.15)中父模型的子模型对象 我的关联模型如下所示: // models/parent.js ... export default DS.Model.extend({ children: DS.hasMany('child', {async:true, inverse:'parent'}), ... }); // models/child.js ... export default DS.M

如何在不抛出错误的情况下获取(或者更确切地说检查是否存在)属于Ember Data(v1.13.15)中父模型的子模型对象

我的关联模型如下所示:

// models/parent.js
...
export default DS.Model.extend({
    children: DS.hasMany('child', {async:true, inverse:'parent'}),
...
});


// models/child.js
...
export default DS.Model.extend({
    parent: DS.belongsTo('parent', {async:true, inverse:'children'}),
....
});
在我路线的模型钩子中,我试图检查是否有任何孩子已经与我的父母关联(顺便说一句,父母也是“家庭”模型的hasMany/belongsTo的子模型…)。如果我还没有添加任何子对象,我需要创建一些子对象并将它们与父对象关联,但是当我执行类似操作时:

parent.get('children').then(function(children){
    // would be nice to get in here and maybe have children.length == 0
});
我得到
未捕获(承诺中)类型错误:无法读取未定义的属性“then”
。同样,无法调用
parent.get('children').get('length')
this.store.findAll('child')。然后…
似乎也出错了


是否不可能得到一个空数组,或者我必须使用一些脏捕获来确定我是否有任何子模型?我对灰烬很缺乏经验,所以任何指点或帮助都将不胜感激。谢谢

不应该
parent.get('children.length')
执行您需要的操作吗?或者
parent.get('children').get('length')
同样会抛出相同的错误。更正:使用
的promise语法。然后
我得到了错误。我使用
。然后
,因为我想确保长度确实如此,而不仅仅是一个未兑现的承诺。正如您所提到的,直接获取长度会返回未定义的
,我认为这会起作用,但仍然不能确定这不仅仅是未实现的承诺。不过,谢谢,我可能只需要检查
未定义的