在angular4打字稿中进行类初始化的更好方法

时间:2018-08-11 14:48:29

标签: angular typescript angular5 angular6 typescript2.0

在angular4的外部类内部初始化内部类的更好方法。

这里有一个外部类名称ProductsModel,其中包含ProductsListModel。 我必须将ProductId字符串数组发送到服务器端请求。下面的代码在初始化外部类内部的内部类时工作正常。

未初始化时:

  export  class ProductsModel{
        productList : ProductListModel;

        }

这样做时,我收到以下错误消息:

  

无法将属性ProductId设置为未定义。

所以我在下面像这样按预期进行初始化,有没有更好的初始化方法

Outer Class:

export  class ProductsModel{
productList = new ProductListModel();

}


export class ProductListModel{
ProductId:string[];

}

-- app. component.ts

export class AppComponent {

// initialsize  outer class here:

products = new ProductsModel();

in this subscribe:


DetailsByProductID(){


this.products.productList.ProductId = ['8901','8902'];
//pass the model object here 

this.ProductService.fetchByPID(this.products).subscribe(resposne=>console.log(response)});


}
}

1 个答案:

答案 0 :(得分:1)

您应该只在组件中进行初始化,并使用属性保留类。

您收到错误消息“无法设置 ProductId 的属性未定义”。因为product为空。

您可以像在类中一样在组件内进行初始化。

products = new ProductsModel();

this.products.productList = new ProductListModel();

this.products.productList.ProductId = ['8901','8902'];