Двусторонняя привязка данных не работает при использовании индекса с ngModel

#angular

#angular

Вопрос:

Я отображаю страны, используя ngFor, вместе с полями ввода. Я использовал поля ввода для указания стоимости конкретного продукта и страны. Мой вопрос в том, как отобразить введенное значение с помощью ngModel, здесь я привязываю [index] с помощью ngModel.

Предположим, если я ввел 100 для страны Индия, это отлично сохраняется в базе данных. Но двусторонняя привязка данных не работает.

Как использовать двустороннюю привязку данных с помощью ngModel, используя индекс в angular5 stackblitz

Кто-нибудь может, пожалуйста, помочь.

Комментарии:

1. Привет, если вы хотите двустороннюю привязку данных, просто замените [(ngModel)]="x[i]" на [(ngModel)]="x.name" , чтобы она работала нормально

2. Пожалуйста, предоставьте свой код.

3. просто измените эти строки, братан, о которых я упоминал в моем предыдущем комментарии

4. Я изменил это, но не работает, братан.

Ответ №1:

На самом деле вам не нужно привязываться к (keyup) , если вы используете [(ngModel)]

Просто выполнение этого сделало бы:

 <div class="admin-page">
  <div class="row">
    <div class="col-md-12">
      <div class="row">
        <div class="co col-md-12">
          <li *ngFor="let x of countries;let i=index">
            <div class="form-group" (click)="country(x)">
              <label>{{x.name}}</label>
            </div>
            <input 
              type="text" 
              class="form-control" 
              [name]="'name_' i" 
              [(ngModel)]="countries[i].value">  <!-- or [(ngModel)]="x.value" for that matter-->
          </li>
        </div>
      </div>
    </div>
  </div>
  <pre>
    {{ countries | json }}
  </pre>
</div>
  

Вот рабочий образец StackBlitz для вашей ссылки.

Комментарии:

1. Спасибо за ваш ответ. Вы показываете данные в формате json ниже, но что мне нужно, так это ввести 100 в india, это значение, которое вы показываете в приведенном ниже json, но мне нужно отобразить в поле ввода.

2. Здесь ngModel должен действовать как двусторонняя привязка данных.