Вычисляемая собственность в 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 (если только им обоим не удастся установить их в одном цикле выполнения). Вычисленное свойство связано как с А, так и с В.
Вот почему предпочтительно поместить вычисляемое свойство в контроллер. Пусть контроллер украсит модель. В этом случае вычисляемое свойство будет вычисляться только тогда, когда контроллер активен, когда это действительно необходимо.