Angular调用service前如何修改item对象,仅保留指定字段传入请求
你之前的赋值写法不符合JavaScript语法规则,逗号运算符仅会返回最后一个表达式的结果,会导致item被直接赋值为单个字符串,无法满足传参要求。可采用以下任意一种方案实现需求:
方案1:删除原对象多余字段(会修改原item对象)
直接删除不需要的ageCode字段后传入即可,适合后续不需要再使用item中ageCode字段的场景:
registerCus(item) { this.customer.code = 'B001'; this.customer.avCode = 'L01'; this.customer.ageCode = 'A1'; // 删除不需要的字段 delete item.ageCode; this.registrationService.customerRequest(item).subscribe(data => { }, error => { }); }
方案2:解构生成新对象(不会修改原item对象,更推荐)
用解构语法提取需要的字段,生成新的请求参数对象,不会影响原item的后续使用:
registerCus(item) { this.customer.code = 'B001'; this.customer.avCode = 'L01'; this.customer.ageCode = 'A1'; // 提取ageCode之外的所有字段组成新对象 const { ageCode, ...requestItem } = item; this.registrationService.customerRequest(requestItem).subscribe(data => { }, error => { }); }
方案3:手动构造请求对象(最直观,可控性最高)
显式指定要传递的字段,完全避免隐式包含其他多余字段:
registerCus(item) { this.customer.code = 'B001'; this.customer.avCode = 'L01'; this.customer.ageCode = 'A1'; // 仅取需要的两个字段构造新对象 const requestItem = { code: item.code, avCode: item.avCode }; this.registrationService.customerRequest(requestItem).subscribe(data => { }, error => { }); }
内容的提问来源于stack exchange,提问作者Kumara
相关产品推荐
相关产品推荐

