我试图在Angular2中使用ngModel实现内联编辑。我有一个数组需要使用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'];
}
如果有人可以帮助我,这将是巨大的。
我原以为是发生了什么事情与@ Varun的的问题...你的解决方案是相当不错的,但取消行动不再取消...它仍然保存了所做的任何更改 –
是的,我没有对所有其他功能进行理智检查,应该在那里发出警告。我的改变纯粹是为了解决他所遇到的问题:) –
实质上,他的解决方案涉及制作一个模型 - “数据”类。这是实施任何可重复数据对象时推荐的方式。 – BrianRT