将值动态设置为angular7中的对象
setValue dynamic to object in angular7
我有这段代码,我想将其重构为更好的解决方案:
async onServerRequestForDraft(res: { value: {}; tabType: ETabType; }) {
res.value = this.uiForm.value;
res.value = this.data;
res.value['brokerage'] = this.uiForm.value.brokerage != null ? this.uiForm.value.brokerage : { id: 0, name: null };
res.value['org'] = this.uiForm.value.org;
res.value['selectedPhone'] = this.uiForm.value.selectedPhone || '';
res.value['customerName'] = this.uiForm.value.customerName || '';
}
我不能使用 forEach,因为 res 不是数组。也许另一种解决方案?
你可以像这样在 Object 上使用 forEach :
Object.entries(this.uiForm.value).forEach((item) => {
// item[0] object key
// item[1] object value
});
虽然您可以使用它,但您不需要 forEach 也能正常工作。
async onServerRequestForDraft(res: { value: {}, tabType: ETabType }) {
Object.assign(res.value, {
'brokerage': this.uiForm.value.brokerage ?? { id: 0, name: null },
'org': this.uiForm.value.selectedPhone ?? '',
'customerName': this.uiForm.value.customerName ?? '';
})
return res;
}
如果你只想使用循环,你可以这样做:
async onServerRequestForDraft(res: { value: {}, tabType: ETabType }) {
for (const key in this.uiForm.value) {
if (key === 'brokerage') {
Object.assign(res.value, {key : this.uiForm.value[key] ?? { id: 0, name: null }});
continue;
}
Object.assign(res.value, {key : this.uiForm.value[key] ?? ''});
}
return res;
}
我有这段代码,我想将其重构为更好的解决方案:
async onServerRequestForDraft(res: { value: {}; tabType: ETabType; }) {
res.value = this.uiForm.value;
res.value = this.data;
res.value['brokerage'] = this.uiForm.value.brokerage != null ? this.uiForm.value.brokerage : { id: 0, name: null };
res.value['org'] = this.uiForm.value.org;
res.value['selectedPhone'] = this.uiForm.value.selectedPhone || '';
res.value['customerName'] = this.uiForm.value.customerName || '';
}
我不能使用 forEach,因为 res 不是数组。也许另一种解决方案?
你可以像这样在 Object 上使用 forEach :
Object.entries(this.uiForm.value).forEach((item) => {
// item[0] object key
// item[1] object value
});
虽然您可以使用它,但您不需要 forEach 也能正常工作。
async onServerRequestForDraft(res: { value: {}, tabType: ETabType }) {
Object.assign(res.value, {
'brokerage': this.uiForm.value.brokerage ?? { id: 0, name: null },
'org': this.uiForm.value.selectedPhone ?? '',
'customerName': this.uiForm.value.customerName ?? '';
})
return res;
}
如果你只想使用循环,你可以这样做:
async onServerRequestForDraft(res: { value: {}, tabType: ETabType }) {
for (const key in this.uiForm.value) {
if (key === 'brokerage') {
Object.assign(res.value, {key : this.uiForm.value[key] ?? { id: 0, name: null }});
continue;
}
Object.assign(res.value, {key : this.uiForm.value[key] ?? ''});
}
return res;
}