Вычисляемая собственность в Emberjs Model

Предположим, у нас есть такая модель:

App.Somemodel = DS.Model.extend({
    A:DS.attr('number'),
    B:DS.attr('number'),
    CP: function(){return this.get('A') + this.get('B');}.property('A','B')
})

У меня такой вопрос: когда будет рассчитываться СР? - Сразу после изменения A (до записи.save()) - После сохранения записи? - В тот момент, когда эта запись снова будет извлечена из магазина?

Мой второй вопрос: это поведение из-за самого вычисляемого свойства?

Сейчас я бьюсь над некоторыми проблемами: при одновременном обновлении более 1000 записей эффективность становится ужасной.

Я пытался понять: это хорошая идея, чтобы определить свойство computed-в модели?

1 ответ

Решение

CP будет рассчитываться каждый раз, когда устанавливается A или B (если только им обоим не удастся установить их в одном цикле выполнения). Вычисленное свойство связано как с А, так и с В.

Вот почему предпочтительно поместить вычисляемое свойство в контроллер. Пусть контроллер украсит модель. В этом случае вычисляемое свойство будет вычисляться только тогда, когда контроллер активен, когда это действительно необходимо.

Другие вопросы по тегам