当他的表单发生更改时,我想比较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;
}