如何实例化另一个对象的成员字段的空数组?

时间:2017-11-27 12:55:33

标签: angular typescript

我正在开发一个Angular 4应用程序。在TS文件中,我有以下数据类型:

 testBody: {
        test_category: string,
        test_instruction: string,
        test_duration: string,
        test_name: string,
        test_class: string,
        test_language: string,
        test_exam: string,
        test_board: string,
        client_id: string,
        program_id: string,
        test_visibility: number,
        test_sections_data: [
            {
                section_name: string,
                section_max_marks: number,
                section_cut_off: number,
                section_topper_marks: number,
                section_number_of_questions: number
            }]
    }

现在,我想实例化一个空的testBody对象,该对象可以用html代码绑定。为此,我在控制器类中执行以下操作:

...
 constructor(private modalService: NgbModal, private route: ActivatedRoute, private dragulaService: DragulaService, private http: HttpClient) {
        const bag: any = this.dragulaService.find('bag-task1');
        ...
        this.testBody = {
            test_category: '',
            test_instruction: '',
            test_duration: '',
            test_name: '',
            test_class: '',
            test_language: '',
            test_exam: '',
            test_board: '',
            client_id: allGlobals.client_id,
            program_id: this.program_id,
            test_visibility: null,
            test_sections_data: null
        };
       ...
    }

问题是如何初始化test_sections_data的空数组?我也有tried test_sections_data: [],但它不起作用。

1 个答案:

答案 0 :(得分:0)

一个好的做法是添加TestBodyTestSectionData接口:

https://jsfiddle.net/2s9sav9m/1/

然后,您可以根据需要将默认值设置为[]并按下或重置,同时保持数据的一致性。

您还可以通过向界面添加test_sections_data来使?成为可选项:

TestBody {
    ...
    test_sections_data?: TestSectionData[]
    ...
}

如果您希望该值默认为伪造。

希望这有意义/有帮助!