两周前我更新到 RC6,我注意到我正在处理的项目中的一个屏幕出现错误。我有一个 ember 模型,它有一个 hasMany 关系,该模型是一个基于其 hasMany 关系上的属性的计算属性,如下所示:
notReadyToSend: function() {
return this.get('tweets').filter(function(tweet){
return !tweet.get('readyToSend');
})
}.property('tweets.@each.readyToSend')
这属于推文模型:
readyToSend: function() {
//if all properties are true, then this property returns true
}.property('title', 'body', 'alreadySent', and many other properties)
并且,在加载数据时,所有推文都没有“准备好”,因为您知道,正在加载数据,但是当加载整个数据时,一些推文在“notReady”中仍未“准备好”属性,但它们实际上在其对象中“准备就绪”,我的意思是,Tweet ember 模型具有其“准备就绪”属性,该属性也有一些逻辑,并且该属性为真,但未触发“notReady”属性,并且这发生在最后一条推文(取决于我们有多少,有时只有一条,有时两条,等等)推文。
有人遇到这个问题吗?
我已经更新了代码,但请注意,这些不是真正的模型,但这基本上就是我正在做的。readyToSend 属性,所有记录都设置为 true,但父模型中的 notReadyToSend 属性不会更新,但同样,所有记录都不会发生这种情况,只有少数记录(并且只有最后一个关系)不要触发父属性。
再更新一次,我在父模型中有另一个属性,它也检查推文关系的一个属性,它看起来像这样:
hasAtLeastOneTweetALreadySent: function() {
return this.get('tweets').findProperty('alreadySent');
}.property('tweets.@each.alreadySent')
并且在推文模型的 'readyToSend' 属性中也观察到了 'alreadySent' 属性。出于某种原因,如果我只是注释掉 (hasAtLeastOneTweetALreadySent) 属性,一切正常,你知道为什么会这样吗?这很奇怪。