Aurelia repeat.for для двустороннего связывания

Я новичок в Aurelia Js и использую repeat.for для списка некоторых текстовых полей, которые могут содержать некоторые значения. Здесь, перечисленное текстовое поле в порядке, проблема в том, что я использую value.bind для привязки предыдущего значения / нового значения (пользовательский ввод) при наборе текста в текстовом поле, это применяется для всей модели (для всех i.companyname)

код:

<div class="row" repeat.for="i of experience_array">
    <input type='text' value.bind='i.companyname'/>
    <input type='text' value.bind='i.experience'/>
</div>

Также попробовал:

<div class="row" repeat.for="i of experience_array.length">
    <input type='text' value.bind='$parent.experience_array[i]['companyname']'/>
    <input type='text' value.bind='$parent.experience_array[i]['experience']'/>
</div>

Как это исправить? Угадайте, я что-то упустил в связывающей концепции aurelia

1 ответ

Вы добавляете существующую ссылку на объект (obj) в свой список при добавлении, поэтому вы в основном добавляете один и тот же объект каждый раз. Поэтому, когда вы редактируете этот объект, он обновит все компоненты пользовательского интерфейса, связанные с этим объектом.

Когда вы нажимаете кнопку "Добавить", я предполагаю, что вы хотите добавить новый объект. Вы должны создать класс компании и поместить новый экземпляр этого класса в список вместо того же объекта.

Пример: https://gist.run/?id=2237595bdde46cee4658cc14873050d7

Другие вопросы по тегам