无法获取Angular中具有多个字段的模型的字段?

时间:2018-07-22 10:28:13

标签: angular typescript

我的项目使用Angular 5和Typescript。 我对模型有很多领域有疑问。提交表单时,我无法拥有模型的所有字段。模型的某些字段已丢失。我不知道为什么。有没有人知道我的代码有什么问题或告诉我一些建议?

这是我的代码:

HTML:

<div class="wrapper">
    <div class="row">
        <label class="bold">Name</lable>
        <input  type="text" pInputText [(ngModel)]="model.name" />
    </div>
    <div class="row">
        <label class="bold">Email</lable>
        <input  type="text" pInputText [(ngModel)]="model.email" />
    </div>  
    <!-- Many other fields -->
</div>
<button pButton type="button" (click)="onSave()" class="bg-blue-light btn-medium" label="Save"></button>

型号:

export class CustomerModel {
    name: string;
    email: string;
    // Many other fields: over 100 fields
}

组件:

// Init new model
public model: CustomerModel = new CustomerModel();

// Handle save event
public onSave() {
    let fields = Object.getOwnPropertyNames(this.model);
    // let fields = Object.keys(this.model);
    console.log(fields);
}

我已经用chrome调试过,我看到模型没有足够的字段,所以getOwnPropertyNames()和keys()函数都没有正确的结果。我想该模型有很多领域是有问题的,因为我可以从模型有一些领域获得成功。

1 个答案:

答案 0 :(得分:0)

Object.getOwnPropertyNames(this.model);

Object.keys(this.model);只会为您提供设置了values的属性。

因此,您将在列表中看不到尚未初始化的properties

选中here