Angular 用另一个对象替换对象
我有一个包含和address对象的organization对象,我想用从表单中获得的值编辑address对象,然后我想用新对象地址更改organization对象中的address对象,因此我使用了Angular 用另一个对象替换对象,angular,typescript,Angular,Typescript,我有一个包含和address对象的organization对象,我想用从表单中获得的值编辑address对象,然后我想用新对象地址更改organization对象中的address对象,因此我使用了object.assign,但它总是返回旧地址 export class Organization { public address?: Address; public telecoms?: Telecom[]; public metier?: Dictionary; } e
object.assign
,但它总是返回旧地址
export class Organization {
public address?: Address;
public telecoms?: Telecom[];
public metier?: Dictionary;
}
export class Address {
public zipCode?: Dictionary;
public country?: Dictionary;
public city?: string;
}
export class Dictionary {
public id?: number;
public code?: string;
public label?: string;
}
this.organizationService.getOneById(this.id).subscribe((organization: Organization) => this.organization= organization });
const address = this.editForm.get("address").value;
console.log(JSON.stringify({ address })); // {"address":{"country":{"id":2},"zipCode":{"id":1}}}
let organiationToSave: Organization = this.organization;
Object.assign({}, organiationToSave , JSON.stringify({ address }));
console.log(organiationToSave);
在上面的代码中,您将值分配给一个新对象{}
,然后登录组织保存。这毫无意义
也许你想这样做
const obj = Object.assign({}, organiationToSave , JSON.stringify({ address }));
console.log(obj);
或者,如果要将组织更新为保存,请执行以下操作:
Object.assign(organiationToSave , JSON.stringify({ address }));
console.log(organiationToSave);
我想更新organiationToSave
,所以我使用了Object.assign(organiationToSave,JSON.stringify({address}))
但我向我展示了这个erreur无法添加属性0,对象不可扩展
@AymenKanzari这是因为您的代码的某些部分(在您的问题中未显示)使用了对象.preventExtensions()
。看见不过,这是另一个问题的另一个问题。我没有在代码的任何部分使用Object.preventExtensions()
,我从organizationService.getOneById
获取organization
,然后我想更新这个组织。@AymenKanzari这是一个单独的问题,你应该在单独的问题中提问,我们会尽力帮助你。关于这一点,考虑投票和选择最佳答案。另外,我打赌getOneById
包含Object.preventExtensions()
code。
Object.assign(organiationToSave , JSON.stringify({ address }));
console.log(organiationToSave);