Angular2中的doubleDataBinding问题

时间:2018-08-09 09:24:50

标签: angular

当他的表单发生更改时,我想比较2个数组,1个服务器和其他客户端。

然后我比较2个数组,但是有问题。

1º阵列客户端和服务器相同。 2º如果有,我总是加入。

  this.service.getData(url).subscribe(
      data => {
        this.params = data;
        this.beforeParams = this.params;
       ...

HTML->在此,用户更改了复选框。

tr *ngFor="let data of params">
input type="checkbox" id="{{data.id}}" name="{{data.id}}" [(ngModel)]="data.validated">

-

saveChange() {
 const modifyParam: any = this.service.compareParams(this.params, this.beforeParams);
}

现在我已经使用myUser formParams检查了“原始”更改

Service:
    compareParams(formParams: any, backParams: any) {
        let modifyParam, myParam;
        let cont = 0;

        formParams.forEach(element => {
          myParam = backParams[cont];
          console.log(myParam);
          console.log(element);
          console.log("---");
         if (element.validated !== myParam.validated) {
          console.log("changed"  + element.data);
         }
         cont ++;
        });

        return modifyParam;
      }

从服务器:

myParam{
 "id":1
 "validated": false;
},
myParam{
 "id":2
 "validated": false;
}

然后,我将表单中的复选框更改为true,但还验证了“ backParams”中的更改(错误,我无法比较。)


OutPut-> myParam

myParam{
 "id":1
 "validated": true;
},
myParam{
 "id":2
 "validated": true;
}

OutPut->元素

myParam{
 "id":1
 "validated": true;
},
myParam{
 "id":2
 "validated": true;
}

0 个答案:

没有答案