Ember JS привязывает вычисляемое свойство к потомку hasMany
У меня есть следующие модели:
Variant = DS.Model.extend
value: DS.hasMany('value')
compiledValues: (->
@get('values').map((v,i,e) ->
v.get('option').get('name') + ' : ' + v.get('value')
).join("\n")
).property('values.@each.value', 'values.@each.option.name')
Value = DS.Model.extend
option: DS.belongsTo('option')
Option = DS.Model.extend
values: DS.hasMany('values')
Проблема, которую я имею, является вычисляемым свойством compiledValues
обновляется только при изменении значения одного из значений, а не при изменении имени параметра.
Смотрите демонстрацию jsbin
У меня есть обходной путь, который добавляет optionName
на Value
как ниже, но разве я не смогу связываться, как я пытаюсь выше?
optionName: Ember.computed.alias('option.name')
1 ответ
Рад, что вы нашли обходной путь, в документах прямо указано, что вложенные зависимые свойства работают только на один уровень при использовании @each
,
http://emberjs.com/guides/object-model/computed-properties-and-aggregate-data/