2017-01-24 3 views
-1

Является новым для angularjs. пожалуйста, посмотрите на код, я не могу даже знаю, как объяснить этот интерфейс одинAngularjs 2 вложенный интерфейс

export interface ScanuploadInterface { 
    docVia string;customFields:Array<any>; 
    associateDocs :Array<any>; 
} 

модель:

import {ScanuploadInterface} from '../../interfaces/scanupload.interface'; 
holeDocument = <ScanuploadInterface>{}; 

HTML: делает * ngFor для динамического поля ввода

<input id="{{list.fieldName}}" name="{{list.fieldName}}" type="{{list.fieldType}}" class="form-control" [(ngModel)]="holeDocument.customFields[list.fieldName]" > 

но это один бросает ошибку как

Не удается прочитать свойство 'field12' неопределенной

field12 является динамическое значение происходит от list.fieldName. Я не знаю, как решить эту проблему. Приветствуется любое решение. Заранее спасибо.

+0

Где вы инициализируете свои пользовательские поля? Он говорит, что openDocument.customFields не определено –

+0

в моем интерфейсе, см. 2-ю строку в моем заголовке интерфейса и импортировано в модели 1-я строка. @ AliBaig – sibi

+0

Это просто объявление, а не инициализация. Насколько я вижу, вы ничего не назначили customFields с помощью оператора =. –

ответ

-1

Да, я исправлен путем инициализации объекта в ngOnInit, it work. код: интерфейс:

export interface ScanuploadInterface { 
    docVia string;customFields:any; 
    associateDocs :any; 
} 

модель:

import {ScanuploadInterface} from '../../interfaces/scanupload.interface'; 
holeDocument = <ScanuploadInterface>{}; ngOnInit(){this.holeDocument.customFields = {}; 
     this.holeDocument.associateDocs = {};} 

HTML: делает * ngFor для динамических полей ввода

<input id="{{list.fieldName}}" name="{{list.fieldName}}" type="{{list.fieldType}}" class="form-control" [(ngModel)]="holeDocument.customFields[list.fieldName]" > 

Спасибо за ваш ответ.