У меня есть объект вроде:
// app/services/my-service.js
import Ember from 'ember';
export default Ember.Service.extend({
counters: Ember.Object.create()
})
myService.counters
– это хэш, например:
{
clocks: 3,
diamons: 2
}
Я хочу добавить к этому объекту вычисляемый атрибут, который возвращает сумму myService.counters.clocks
плюс myService.counters.diamons
// app/services/my-service.js
...
count: Ember.computed('counters.@each', function(){
return _.reduce(this.get('counters'), function(memo, num){ return memo + num; }, 0);
})
...
Но конфигурация наблюдателя не принимается, и у меня есть ошибка:
Uncaught Error: Assertion Failed: Depending on arrays using a dependent key ending with `@each` is no longer supported. Please refactor from `Ember.computed('counters.@each', function() {});` to `Ember.computed('counters.[]', function() {})`.
Но если я внесу предложенное изменение:
// app/services/my-service.js
...
count: Ember.computed('counters.[]', function(){
return _.reduce(this.get('counters'), function(memo, num){ return memo + num; }, 0);
})
...
Атрибут count не обновляется.
Единственный способ, которым я могу заставить его работать, выглядит следующим образом:
// app/services/my-service.js
...
count: Ember.computed('counters.clocks', 'counters.diamons', function(){
return _.reduce(this.get('counters'), function(memo, num){ return memo + num; }, 0);
})
...
Как я могу использовать какой-либо подстановочный знак для этой ситуации?