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

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

код :

<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>

Как это исправить? Думаю, я что-то упустил в концепции привязки аурелии.


person sibi    schedule 02.08.2016    source источник
comment
Невозможно воспроизвести это: gist.run/?id=196d22b7eef6d461b19924ef6fd4cc07   -  person Matthew James Davis    schedule 02.08.2016
comment
Привет @MatthewJamesDavis, вот мой точный сценарий. Обновлен GitRun gist.run/?id=a11f8500803a7b6053f980b7aaa48165.   -  person sibi    schedule 03.08.2016
comment
пока нажимаю кнопку ДОБАВИТЬ, я добавляю новый объект в массив. Здесь модель обновляет одно и то же значение. Спасибо и сделать необходимое.   -  person sibi    schedule 03.08.2016
comment
нужно будет посмотреть файл JS, чтобы точно увидеть, что вы пытаетесь сделать, но, насколько я вижу, вы не должны привязывать $parent.experience_array так   -  person Danny    schedule 10.08.2016


Ответы (1)


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

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

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

person Arne Deruwe    schedule 04.08.2016