Javascript Angular 2列出需要预选的复选框,并在表单提交中获取这些值

Javascript Angular 2列出需要预选的复选框,并在表单提交中获取这些值,javascript,angular,Javascript,Angular,我有一个需要通过items json数组呈现的复选框列表,并预先勾选“item.isInPackage”应等于true: <tr *ngFor="let item of items"><td><input id="item.id" type="checkbox" [checked]="item.isInPackage"></td></tr> 我不清楚这些复选框是否也需要应用[(ngModel)]?您可以使用[(ngModel)],但您

我有一个需要通过items json数组呈现的复选框列表,并预先勾选“item.isInPackage”应等于true:

<tr *ngFor="let item of items"><td><input id="item.id" type="checkbox" [checked]="item.isInPackage"></td></tr>
我不清楚这些复选框是否也需要应用[(ngModel)]?

您可以使用
[(ngModel)]
,但您不必这样做。我使用了
(单击)
,并将其绑定到构建JSON的函数。以下是我所做的:

@Component({
  selector: 'my-app',
  template: `
    <input *ngFor="let item of items" id="item?.fixture.id" type="checkbox" (click)="setObj(item)" [checked]="item.isInPackage" #item?.fixture.id>
  {{obj}}`,
  styles: []
})
export class FormComponent implements OnInit {

  items : any[] = [{fixtureId:1,isInPackage:false},{fixtureId:2,isInPackage: false}]
  obj : string = "[]";

  constructor(){

  }

  setObj(item){
    let obj = JSON.parse(this.obj);
    item.isInPackage = !item.isInPackage;
    if(!item.isInPackage){
      obj.forEach((e,i) => {
        e.fixtureId === item.fixtureId ? obj.splice(i,1) : null;
      })
    } else {
      obj.push({fixtureId:item.fixtureId});
    }
    this.obj = JSON.stringify(obj);
  }

}
@组件({
选择器:“我的应用程序”,
模板:`
{{obj}}`,
样式:[]
})
导出类FormComponent实现OnInit{
items:any[]=[{fixtureId:1,isInPackage:false},{fixtureId:2,isInPackage:false}]
obj:string=“[]”;
构造函数(){
}
setObj(项目){
让obj=JSON.parse(this.obj);
item.isInPackage=!item.isInPackage;
如果(!item.isInPackage){
对象forEach((e,i)=>{
e、 fixtureId==item.fixtureId?对象拼接(i,1):空;
})
}否则{
推送({fixtureId:item.fixtureId});
}
this.obj=JSON.stringify(obj);
}
}
@Component({
  selector: 'my-app',
  template: `
    <input *ngFor="let item of items" id="item?.fixture.id" type="checkbox" (click)="setObj(item)" [checked]="item.isInPackage" #item?.fixture.id>
  {{obj}}`,
  styles: []
})
export class FormComponent implements OnInit {

  items : any[] = [{fixtureId:1,isInPackage:false},{fixtureId:2,isInPackage: false}]
  obj : string = "[]";

  constructor(){

  }

  setObj(item){
    let obj = JSON.parse(this.obj);
    item.isInPackage = !item.isInPackage;
    if(!item.isInPackage){
      obj.forEach((e,i) => {
        e.fixtureId === item.fixtureId ? obj.splice(i,1) : null;
      })
    } else {
      obj.push({fixtureId:item.fixtureId});
    }
    this.obj = JSON.stringify(obj);
  }

}