Учитывая массив людей:
let people = [...]
Я хочу написать в Angular выпадающий список, где вы выбираете человека из списка и динамически меняете его имя из сгенерированного поля ввода.
У меня есть следующий фрагмент кода:
<select [(ngModel)]="personIndex">
<option *ngFor="let p of people" [value]="findIndexOfPerson(p.id)">
{{p.name}}
</option>
</select>
<input placeholder="Name"
[ngModel]="getPersonName()"
[hidden]="personIndex == null">
Внутри моего компонента:
personIndex = null;
findIndexOfPerson(i) {
return this.people.findIndex(p => p.id == i)
}
getPersonName() {
if (this.personIndex == null || this.personIndex == -1) return null;
return this.people[this.personIndex]['name'];
}
Теперь Я понимаю , что не могу установить двустороннюю привязку данныхс помощью функции получения, используя [ngModel].На этой ноте, если я изменю
[ngModel] = "getPersonName ()" на [(ngModel)] = "getPersonName ()"
, программа выдает компиляторошибка.
Так вот вопрос, как я могу получить то, что я хочу?Как я могу изменить логику, чтобы мой список людей можно было изменить с помощью раскрывающегося списка и поля ввода?