Derived 구성 요소의 'name'변수를 기본 구성 요소의 생성자로 전달할 수 있기를 원합니다. 이유는 기본 구성 요소에서 확장 된 파생 구성 요소가 '이름'변수를 전달하도록 강제하기 때문입니다.
@Component({
selector: 'base-component',
templateUrl: './base.component.html',
styleUrls: ['./base.component.scss']
})
export class BaseComponent {
public name: string;
constructor(public sampleName: string) {
this.name = sampleName;
}
}
Derived 구성 요소의 name.enum.ts라는 별도 파일에서 'name'변수를 가져옵니다.
export enum Name {
NAME = 'DummyName'
}
이것은 내 파생 구성 요소입니다.
import {Name} from ../name.enum
@Component({
selector: 'derived-component',
templateUrl: './derived.component.html',
styleUrls: ['./derived.component.scss']
})
export class DerivedComponent extends BaseComponent {
constructor() {
super(Name.NAME); //This throws an error 'Cant resolve all parameters for BaseComponent'
}
이 문제를 어떻게 해결합니까?
기본 클래스는 구성 요소가 아니라 추상 클래스 여야합니다. 그것을 변경하십시오
export abstract class BaseComponent {
public name: string;
constructor(simpleName: string) {
this.name = simpleName;
}
}
다음은 실제 예입니다. https://stackblitz.com/edit/angular-base-component?file=src/app/app.component.ts
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다