Я пытаюсь реализовать встроенное редактирование с использованием ngModel в Angular2. У меня есть массив, который нужно повторить с помощью ngFor, а также использовать ngModel. Когда я пытаюсь применить встроенное редактирование для этого массива, я могу редактировать только один символ для каждой из переменных массива.Angular2 Встроенное редактирование с использованием ngModel и ngFor
Рабочий стол here.
Вот код компонента, где я использую ngModel и ngFor вместе:
import {Component} from '@angular/core'
import {InlineEditComponent} from './inline.component';
@Component({
selector: 'inline-app',
providers: [],
template: `
<div>
<h2>Inline Editing with Angular 2</h2>
<inline-edit [(ngModel)]="editableText" (onSave)="saveEditable($event)"></inline-edit>
</div>
<div>
<ul style="margin:5px;">
<li ngFor #arr [ngForOf]="array" [ngForTrackBy]="customTrackBy">
<inline-edit [(ngModel)]="arr" (onSave)="saveEditable($event)"></inline-edit>
</li>
// <li style="margin:5px;" *ngFor="let arr of array ; let i=index">
// <inline-edit [(ngModel)]="array[i]" (onSave)="saveEditable($event)"></inline-edit>
// </li>
</ul>
</div>
`,
directives: [InlineEditComponent]
})
export class InlineApp {
customTrackBy(index: number, obj: any): any {
return index;
}
editableText = "Click to edit me!";
// Save name to the server here.
saveEditable(value){
console.log(value);
}
array=['bmw','benz','honda'];
}
Если кто-то может мне помочь, это было бы здорово.
я подумал, что было то, что происходит с @ проблемой Варуна в ... ваше решение довольно хорошо, но действие отмены больше не отменяется ... он по-прежнему сохраняет любые сделанные изменения –
Да, я не делал проверки здравомыслия ко всем другим функциям, должен был предупредить об этом. Мои изменения были исключительно для решения проблемы, с которой он сталкивается :) –
По сути, его решение предполагает создание модели - класса «Data». Это рекомендуемый способ реализации любого повторяющегося объекта данных. – BrianRT