Эмбер вычисляется во входном значении каждого цикла
У меня есть элемент ввода на Ember, в то время как значение приходит из каждого условия
{{#each items as |item|}}
<div class="form-group">
<label class="col-sm-3 control-label">Judul {{item.no}}</label>
<div class="col-sm-9 input-group">
{{input class="form-control" value=item.title placeholder="Tambah judul" type="text"}}
<span class="input-group-btn">
<a class="btn btn-default remove_detail" type="button" onclick={{action 'decreaseTitle'}}><i class="fa fa-times"></i></a>
</span>
</div>
</div>
{{/each}}
я просто хочу "посмотреть", пока ввод в value=item.title изменился по сравнению с вычисленным углем. как это сделать?
2 ответа
Пожалуйста, см. Следующий тиддл для иллюстрации определения вычисляемого свойства, которое зависит от свойства элемента в массиве. Ты можешь проверить application.js
контроллер.
Ember.computed('items.@each.title', function(){...})
делает трюк для вас.
Если вы хотите динамически наблюдать за чем-то глубоко внутри массива, лучше обернуть эти логики компонентом:
{{#each items as |item|}}
<div class="form-group">
<label class="col-sm-3 control-label">Judul {{item.no}}</label>
<div class="col-sm-9 input-group">
{{my-input item=item}}
<span class="input-group-btn">
<a class="btn btn-default remove_detail" type="button" onclick={{action 'decreaseTitle'}}><i class="fa fa-times"></i></a>
</span>
</div>
</div>
{{/each}}
Вот, my-input
будет ваш компонент, имеющий эти логики и в файле компонента.js,
computedProperty: Ember.computed('item.title', {
//your logics goes here...
};
и в файле шаблона компонента,
{{input class="form-control" value=item.title placeholder="Tambah judul" type="text"}}
и любая другая логика, которая должна быть связана, может быть реализована в самой области действия компонента
@rakwaht, item.title
не нужно заключать в фигурные скобки, так как он находится внутри другого помощника (вход)