在Angular 2中,我如何使用NgFor在重复列表中获得与NgModel的双向绑定.我的代码是错误的.

Plunkr

@Component({
  selector: 'my-app',
  template: `
  <div>
    <div *ngFor="let item of toDos;let index = index;">
      <input [(ngModel)]="item" placeholder="item">
    </div>
    Below Should be binded to above input box
    <div *ngFor="let item of toDos">
      <label>{{item}}</label>
    </div>
  </div>
  `,
  directives: [MdButton, MdInput]
})
export class AppComponent { 
  toDos: string[] =["Todo1","Todo2","Todo3"];
  constructor() {}
  ngOnInit() {
  }
}

推荐答案

在四处挖掘之后,我需要在ngFor上使用trackBy.更新了plnkr和下面的代码.希望这能帮助其他人.

Working Plnkr

@Component({
  selector: 'my-app',
  template: `
  <div>
    <div *ngFor="let item of toDos;let index = index;trackBy:trackByIndex;">
      <input [(ngModel)]="toDos[index]" placeholder="item">
    </div>
    Below Should be binded to above input box
    <div *ngFor="let item of toDos">
      <label>{{item}}</label>
    </div>
  </div>
  `,
  directives: [MdButton, MdInput]
})
export class AppComponent { 
  toDos: string[] =["Todo1","Todo2","Todo3"];
  constructor() {}
  ngOnInit() {
  }
  trackByIndex(index: number, obj: any): any {
    return index;
  }
}

Typescript相关问答推荐

扩展函数签名中的参数类型,而不使用泛型

如何推断计算逻辑的类型

Material UI / MUI系统:我如何告诉TypeScript主题是由提供程序传递的?

如何在Reaction路由v6.4加载器和操作中获得Auth0访问令牌?

角效用函数的类型推断

我可以以这样一种方式键入对象,只允许它的键作为它的值吗?

如何在处理数组时缩小几个派生类实例之间的类型范围?

为什么&;(交集)运算符会删除不相交的属性?

根据类型脚本中的泛型属性 Select 类型

如何在React组件中指定forwardRef是可选的?

有没有办法取消分发元组的联合?

如何按属性或数字数组汇总对象数组

API文件夹内的工作员getAuth()帮助器返回:{UserID:空}

如何为特定参数定义子路由?

组件使用forwardRef类型脚本时传递props

Typescript泛型验证指定了keyof的所有键

如何将元素推入对象中的类型化数组

将对象数组传递给 Typescript 中的导入函数

React router - 如何处理嵌套路由?

是否有可能不允许在 TypeScript 中设置类属性,但也会抛出运行时错误?