Angular2でngModelを使用してインライン編集を実装しようとしています。私はngForを使用して反復する必要があり、またngModelも使用する配列を持っています。この配列のインライン編集を適用しようとすると、配列の変数ごとに1つの文字しか編集できません。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