Aurelia - Binding <select>не устанавливает свойства модели представления - PullRequest
0 голосов
/ 06 июня 2018

При создании выпадающего списка свойство привязки в модели представления не обновляется до значения по умолчанию.

например, учитывая эту модель представления:

export class App {

  @observable
  selected = 0;

}

и это представление

<select value.two-way="selected">
  <option model.bind="1">1</option>
  <option model.bind="2">2</option>
  <option model.bind="3">3</option>
</select>

<span>
    The selected value is: ${selected}
</span>

Когда страница первоначально отображается, вы увидите «Выбранное значение: 0» - даже если в раскрывающемся списке появится 1. Измените раскрывающийся список на 2 и вернитесь к 1, и вы увидите «Выбранныйзначение: 1 ".

Я могу понять, почему вы можете использовать такое поведение, но оно отличается от Knockout (я конвертирую старое приложение Durandal) ... есть ли способ заставить свойство viewmodelбыть одним из допустимых опций выбора?

Live plunkr здесь: http://plnkr.co/edit/v4y3k3TcEzOrm4P2ulNy?p=preview

ПРИМЕЧАНИЕ : действительно мировой код не ставит своей целью установку 'свойство selected к несуществующему значению, в раскрывающемся списке имеется преобразователь значений, который отфильтровывает параметры, но не заставляет свойство viewmodel обновляться до значения по умолчанию.

Спасибо.

1 Ответ

0 голосов
/ 08 июня 2018

Прочитайте объяснение Фреда здесь: https://github.com/aurelia/binding/issues/686

Если вы используете repeat.for для построения параметров.Это установит начальное значение правильно, из-за задержки набора опций, которая вызывает событие изменения.

<select value.bind="selected">
  <option repeat.for="v of [1,2,3]" model.bind="v">${v}</option>
</select>

FYI, использовать value.two-way не нужно, так как привязка значения по умолчанию двусторонняя при выборе / вводетег.

...