从Angular中的数组获取数据拼接

时间:2019-03-18 12:56:23

标签: angular typescript

在这里,我试图从复选框值中获取价值,并且尝试使用无法拼接的独特类型的模板中的数据。

这是我的html代码

 <div class="custom-control custom-checkbox" *ngFor="let data of Data; let i = index">
            <input class="custom-control-input" type="checkbox" (click)="SelectedTemplates(check, $event,i)" [checked]="checked" [value]="data.id" id="{{data.appName}}">
              <label class="custom-control-label" for="{{data.appName}}">{{data.templateName}} | {{data.appName}} |
                  {{data.docName}}</label>
          </div>

这是我的Typescript函数在拼接时无法获取值

SelectedTemplates(check, event, index) {
if (event.target.checked === true) {
  this.checkedItem = true;
  this.NewArry.push({'partnerId': this.PartnerID, 'templateId': this.Data[index].id});
} else if (event.target.checked === false) {
  for (let i = 0; i < this.NewArry.length; i++) {
    this.checkedItem = false;
    if (this.Data[index].id === this.NewArry[i]) {
      console.log(this.NewArry[i].id);
      this.NewArry.splice(i, 1);
    }
  }
}
   this.AreaArr = this.NewArry;
}

2 个答案:

答案 0 :(得分:0)

只要在其他情况下将此代码添加

this.NewArry.splice(index, 1);

答案 1 :(得分:0)

也许是因为指针。

尝试else if

for (let i = 0; i < this.NewArry.length; i++) {
  this.checkedItem = false;
  if (this.Data[index].id !== this.NewArry[i])
    this.AreaArr = [this.NewArry[i], ...this.AreaArr]
}

this.AreaArr = JSON.parse(JSON.stringify(this.NewArry))