gpt4 book ai didi

javascript - Ember 计算未更新

转载 作者:行者123 更新时间:2023-11-30 21:15:02 25 4
gpt4 key购买 nike

我在 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;
})

当用户调用一个 Action 时,必须更新计算属性。

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 属性没有改变:(

谁能解决这个问题

最佳答案

if检查中,需要使用pushObject而不是 push,这是一个将触发计算属性重新计算和观察者触发和模板将其更新为新值的方法。

likestatuses.pushObject(likestatusItem);

关于javascript - Ember 计算未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45770727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com