У меня есть массив объектов в представлении, которое должно представлять динамическое количество полей в .hbs
Итак, массив:
export default Ember.View.extend({
metadata_queries: [{name: '', type: 'Exists',
disableValue: true, queryValue:''}
/*, {...}, {...} */],
});
Остальные элементы массива будут добавляться динамически
У меня есть Ember.TextField
в .hbs
, который нужно отключить (или скрыть - в зависимости от того, что проще) в соответствии с disableValue
(который изменяется, наблюдая за типом, который привязан к {{X3 }}.
Код:
{{#each view.metadata_queries}}
<div class="form-group">
<div class="col-xs-2 col-xl-2">
{{view Ember.Select content=view.metaTypes selection=type}}
</div>
<div class="col-xs-2 col-xl-2">
{{view Ember.TextField classBinding=":tests-query" value=queryValue disabled=disableValue}}
</div>
</div>
{{/each}}
Дело в том, что disableValue
не является свойством, поэтому представление не обновляется (я проверил - само логическое значение меняется)
Как я могу это сделать?
Сделал JSFiddle для проверки: http://jsfiddle.net/6Evrq/400/
2 ответа
Ну ... пока что я неправильно обновил disableValue
:
Правильный способ сделать это:
this.get('metadata_queries').forEach(function(item, index, metaQueries) {
Ember.set(item, "disableValue", item.type === "Exists");
});
Чтобы сделать disableValue свойством, оно должно быть заключено в объект Ember, например
metadata_queries: [Ember.Object.create({name: '', type: 'Exists',
disableValue: true, queryValue:''})
/*, {...}, {...} */],
Похожие вопросы
Новые вопросы
ember.js
Ember.js - это фреймворк для приложений с компонентами, написанный на JavaScript. Попробуйте облегчить ответ на свой вопрос с помощью предварительно настроенных шаблонов, упомянутых в вики этого тега. (Всегда указывайте версию ember, используемую при описании вашей проблемы)