Предположим, что у вас есть выберите выпадающий список, как это:Aurelia: Bind первоначально выбранное значение из опций, вставленных непосредственно в HTML
<select class="form-control" value.two-way="status">
<option value="${'status_deceased' | t:notifier.signal}">${'status_deceased' | t:notifier.signal}</option>
<option value="${'status_duplicate' | t:notifier.signal}">${'status_duplicate' | t:notifier.signal}</option>
</select>
Вы можете просто игнорировать/абстрагироваться от фильтра i18n перевода и пользовательский язык изменен уведомитель, однако я оставил его там, чтобы проиллюстрировать, я не могу просто добавить эти параметры из файла .js.
Но мой вопрос в том, если вы сделаете это так. Введите свои параметры непосредственно в разметку, как бы вы установили исходное выбранное значение внутри файла .js?
Когда я делаю это так и добавляю @bindable status
в мой .js файл, почему он говорит, что он не определен?
Теперь я ожидал, что выбранная (от начальной загрузки) опция из поля выбора в разметке, теперь будет доступна в файле .js, тем самым связавшись.
Однако это происходит только тогда, когда я вручную изменю выбранное значение, щелкнув раскрывающийся список выбора и выбрав вариант.
Как бы я выбрал выбранный вариант изначально, с помощью тегов html параметров, вставленных в разметку?
Edit:
Я также попытался, как это, используя value.bind вместо этого, и без bind.two-пути:
<select class="form-control" value.bind="status">
<option value.bind="'status_deceased' | t:notifier.signal">${'status_deceased' | t:notifier.signal}</option>
<option value.bind="'status_duplicate' | t:notifier.signal">${'status_duplicate' | t:notifier.signal}</option>
</select>
Тем не менее он просто говорит нуль, когда я утешать журнал это из.
edit2
Благодаря комментарий Джереми решение оказалось:
1) значение вместо value.bind для варианта значений
<select class="form-control" value.bind="status">
<option value="${'status_deceased' | t:notifier.signal}">${'status_deceased' | t:notifier.signal}</option>
</select>
2) установить начальное Привязываемое значение свойства внутри viewmodel, и внутри конструктора используйте i18n для программного перевода внутри viewmodel. Что-то наподобие, например:
import {inject, bindable} from 'aurelia-framework'; импорт {I18N} из 'aurelia-i18n';
@inject(I18N)
export class App {
@bindable lolcat;
constructor(i18n){
this.i18n = i18n;
this.lolcat = i18n.tr('test');
}
lolcatChanged(value){
this.lolcat = value;
}
}
Привет, Джереми, проблема с этим подходом заключается в том, что я использую фильтры преобразования i18n и уведомитель в интерполяции стрингера.Таким образом, в этом случае я не могу установить начальное значение из модели viewmodel. Нет ли способа привязать начальное выбранное значение FROM view к viewmodel? http://plnkr.co/edit/FZteo2?p=preview – Dac0d3r
Это оказалось проще, чем я думал. Я сделал то, что вы написали, и просто должен был использовать i18n для программного перевода первоначально установленной формы значения в пределах viewmodel. :) – Dac0d3r
@Jeremy Как получить значение, когда был выбран параметр select. Я всегда получаю то же значение, что и первоначально связанное. – genericuser