两周前我更新到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模型有它的'ready'属性,它也有一些逻辑,而且属性是真的,但'notReady'属性不是解雇,这发生在最后(取决于我们有多少,有时只有一个,有时两个等)推文。
是否有人遇到此问题?
我已经更新了代码,但是作为一个注释,那些不是真正的模型,但这基本上就是我正在做的事情。 readyToSend属性,对于所有记录都设置为true,但是父模型中的notReadyToSend属性没有得到更新,但同样,所有记录都不会发生这种情况,只有几个记录(并且只有最后一个记录)关系)不要激活父属性。
还有一个更新,我在父模型中有另一个属性,它还检查推文关系的一个属性,它看起来像这样:
hasAtLeastOneTweetALreadySent: function() {
return this.get('tweets').findProperty('alreadySent');
}.property('tweets.@each.alreadySent')
和'alreadySent'属性也在tweet模型的'readyToSend'属性中被观察到。出于某种原因,如果我只是注释掉(hasAtLeastOneTweetALreadySent)属性,一切正常,你知道为什么会这样吗?这很奇怪。