2016-09-09 2 views
0

사용자 정의 클래스의 속성에 값을 할당하려고 할 때 undefined 오류가 발생합니다. 속성에 값을 할당하려고 시도 할 때 '정의되지 않은'오류가 발생합니다.

나는 같은 FileArgument 클래스를 정의 :

export class FileArgument { 
    name: string; 
    path: string; 
    file: File; 
} 

은 내가 file 타입의 입력 필드에 대한 정보를 저장하기 위해 내 구성 요소를 사용하려고합니다. 내 구성 요소는 다음과 같습니다

export class InputModuleComponent { 
    private fileArgument: FileArgument; 

    onChange(event): void { 
     console.log('input-module.component - onChange()'); 

     this.fileArgument.file = event.originalTarget.files[0]; 
     this.fileArgument.name = event.originalTarget.id; 
     console.log(this.fileArgument); 
    } 
} 

그리고 내 간단한 html 보이는 같은 :

<input 
    name="{{arg.name}}" 
    id="{{ arg.name }}" 
    type="file" 

    [(ngModel)]="moduleArguments[arg.name]" 
    (change)="onChange($event)" 
> 

onChange 방법이 발생하면, 나는 다음과 같은 오류 얻을 :

Error: Error in http://localhost:3000/app/input/input-module/input-module.component.js class InputModuleComponent - inline template:16:9 caused by: this.fileArgument is undefined 

내가 언급하는 경우를 밖으로 나가 this.fileArgument.file.name에 값을 할당하려고하는 라인을 벗어나서 오류없이 작동합니다.

편집 : 오류는 분명히 값을 fileArgument.file/name에 할당 한 것입니다. event.originalTarget.files/id 오류없이 반환 값.

답변

1

유형을 지정하는 중입니다. 또한 객체의 인스턴스를 할당해야합니다.

private fileArgument: FileArgument = new FileArgument(); 
관련 문제