Angular에서 이벤트 이미터에 2개의 매개 변수를 전달하는 방법은 무엇입니까?
나는 내 구성요소에EventEmitter
오류가 발생하여 컴파일할 수 없습니다.
제공된 매개 변수가 호출 대상의 서명과 일치하지 않습니다.
내 구성 요소:
@Output() addModel = new EventEmitter<any>();
saveModel($event, make, name) {
this.addModel.emit(make, name);
}
의 매개 변수 중 하나를 삭제한 경우this.addModel.emit()
작동하지만 2개의 매개 변수를 전달하는 것이 가능합니다.EventEmitter
그리고 어떻게?
EventEmitter에서 method @ angular.io 을 방출하는 경우 유형의 단일 매개 변수만 사용할 수 있습니다.T
방출(값?:T)
단일 매개변수만 허용되므로 매개변수를 다음과 같이 전달하는 것을 고려합니다.object
에emit
방법.
아래 스니펫에서,make
&name
변수는 각각의 값을 유지합니다.
this.addModel.emit({make: make, name: name});
//shorthand is below
this.addModel.emit({make, name});
강력하게 입력하는 다른 옵션은 다음과 같습니다.
@Output addModel = new EventEmitter<{make: string, name: string}>();
그런 다음 @Pankaj-Parkar 쇼처럼 방출할 수 있습니다.
this.addModel.emit({make, name});
또는
this.addModel.emit({make: 'honda', name: 'civic'});
이제 사용하는 대신 강력한 타이핑 기능이 제공됩니다.object
또는any
.
저는 그것을 만듦으로써 고쳤습니다.
EventEmitter<object>();
그리고 나서 저는 다음과 같은 물체를 통과할 수 있었습니다.
this.MyOutputVariable.emit({ name: 'jack', age: '12' });
그리고 그것은 성공하였다.
나는 이것이 나에게 오래된 질문이라는 것을 알고 있습니다. 나는 인터페이스를 만들어 코드를 더 체계적으로 만들 수 있는 객체로 보낼 것입니다.
export interface addModelArgs{
make:string,
name:string
}
@Output() addModel = new EventEmitter<addModelArgs>();
그리고 그것을 다음과 같이 부릅니다.
this.addModel.emit({make: 'honda', name: 'civic'});
or
let savParamters:addModelArgs={make: 'honda', name: 'civic'};
this.addModel.emit(savParamters);
언급URL : https://stackoverflow.com/questions/41003639/how-pass-2-parameters-to-eventemitter-in-angular
'sourcetip' 카테고리의 다른 글
NS 날짜 가져오기 년/월/일 (0) | 2023.05.28 |
---|---|
ELIFECYCLE Node.js 오류는 무엇을 의미합니까? (0) | 2023.05.28 |
.NET의 API 혁신적인 변경 사항에 대한 최종 가이드 (0) | 2023.05.28 |
Linux에서 가상 환경을 활성화하려면 어떻게 해야 합니까? (0) | 2023.05.23 |
zure에서 파일 업로드 후 BLOB-URL을 가져오는 방법 (0) | 2023.05.23 |