【发布时间】:2017-08-19 11:01:13
【问题描述】:
我在 ember 中有一个计算属性
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'));
});
isCurrentUserLikeIt 属性在 this.doSave 中的语句位于 else 时更新。但是当语句在if (result.userlike) 中时,isCurrentUserLikeIt 属性没有改变:(
谁能解决这个问题
【问题讨论】:
标签: javascript ember.js javascript-objects ember-components ember-controllers