如何将Angular 2中的特定字段对象复制到另一个对象中

时间:2017-09-21 08:03:10

标签: javascript angular copy angular2-forms angular2-directives

有没有一种方法来填充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方法,但它仅对表单有效...

由于

3 个答案:

答案 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;
}