有没有一种方法来填充Angular 2中的本地对象而不删除某些属性?例如,我有一个A
对象:
export class A {
first: string;
second: string;
}
然后我在B
中得到了这样的回复:
{
"first": "bob"
}
现在我该怎么做:
public a: A; // first and second are undefined
// Retrievethe response in b
this.a = b; // **Without doing fields for fields**
但是b
没有second
属性,所以现在a
对象不再具有second
属性,但我认为它是undefined
。我看到表单中有patchvalue
方法,但它仅对表单有效...
由于
答案 0 :(得分:1)
帮助
export class A {
first?: string;
second?: string;
}
b = new A({
"first": "bob"
});
public a = new A();
你可以通过双向将一个obj值复制到另一个
1. you can assign value directly
this.a = this.b;
2.you can assign value using this method
Object.assign(a, b);
答案 1 :(得分:0)
如果您有A的现有实例,那么您可以
Object.assign(a, b);
它只会复制b中定义的属性。如果您还没有A的实例,但只是希望在复制B的值之前将属性定义为null,则在某处创建一个函数,该函数创建A的默认实例,只将其所有值分配给null。
答案 2 :(得分:0)
定义为可选参数并直接指定
将接口定义为不是类
DataGridViewRow LastRow = (from @this in DataGridView1.Rows.OfType<DataGridViewRow>()
where !@this.IsNewRow).LastOrDefault;
if (LastRow != null) {
DataGridView1.Rows.Remove(LastRow);
}
现在您可以直接分配任何参数缺失
export interface A {
first?: string;
second?: string;
}