У меня есть модальный блок с некоторыми полями и на основе некоторых значений в других полях они могут появляться или не отображаться.Невозможно заполнить поля внутри руля, если оператор
Так поля выглядят как
<div class="row">
<select class="form-control" id="ddlNewInputType" placeholder="Enter your input type">
<option value="input">Input</option>
<option value="formula">Formula</option>
</select>
</div>
{{#if isFormula }}
<div class="row">
<input type="text" id="txtNewInputFormula" placeholder="Enter formula">
</div>
{{/if}}
Существует помощник, который определяет, отображается ли текстовое поле txtNewInputFormula
isFormula: ->
return Template.instance().isFormula.get();
ISFORMULA является ReactiveVar, который получает заполняется, когда выпадающий список изменений
'change #ddlNewInputType': (e,t) ->
isFormula = $(e.currentTarget).val() == 'formula'
t.isFormula.set(isFormula);
Фактически это правило, если тип ввода = inp ut, не отображают поле формулы, а если формула ввода = формула, отобразите поле формулы.
Когда мой модальный бокс загружается, он либо для нового, либо для существующего объекта. Если существующий объект, я предварительно заполнить поле модальный со значениями в базе данных, как этот
'click #btnEditInput': ->
$('#addInputModal').modal()
$('#txtNewInputName').val(this.name)
$('#txtNewInputFormula').val(this.formula)
$('#ddlNewInputType').val(this.inputType)
$('#ddlNewInputType').change()
Проблема в том, каждое поле, за исключением txtNewInputFormula заселяется. Я подозреваю, что txtNewInputFormula не заполняется, потому что он находится внутри инструкции handlebar if, и это еще не было оценено, и поэтому элемент HTML не существует.
Как я могу обойти это? Как я могу заполнить HTML-элемент внутри оператора IF?