Javascript 余烬计算未被更新
我在余烬有一个计算属性Javascript 余烬计算未被更新,javascript,ember.js,javascript-objects,ember-components,ember-controllers,Javascript,Ember.js,Javascript Objects,Ember Components,Ember Controllers,我在余烬有一个计算属性 isCurrentUserLikeIt: Ember.computed('likestatuses.@each.user_id', function () { const userId = parseInt(this.commonService.getId()); const likestatuses = this.get('likestatuses'); return likestatuses.filterBy('user_id', use
isCurrentUserLikeIt: Ember.computed('likestatuses.@each.user_id', function () {
const userId = parseInt(this.commonService.getId());
const likestatuses = this.get('likestatuses');
return likestatuses.filterBy('user_id', userId).get('length') !== 0;
})
当用户调用操作时,必须更新计算属性
this.doSave("likestatus", likestatus).then(function (result) {
if (result.userlike) {
const likestatuses = context.get('likestatuses');
likestatuses.push(likestatusItem);
context.set('likestatuses', likestatuses);
} else {
const likestatuses = context.get('likestatuses').filter(function (item) {
return item.user_id !== userId
});
context.set('likestatuses', likestatuses);
}
context.debug(context.get('likestatuses'));
});
当this.doSave
中的语句位于else中时,isCurrentUserLikeIt
属性将更新。但是当语句位于if(result.userlike)
中时,isCurrentUserLikeIt
属性没有更改:(
任何人都可以在
中解决此问题如果
检查,则需要使用而不是推送
,这将触发computed属性以重新计算,并触发observer和模板以将其更新为新值
likestatuses.pushObject(likestatusItem);