2017-10-18 25 views
0

각도를 사용하여 핵심 응용 프로그램에 멋진 구성 요소 프런트 엔드를 구축합니다. 우리는 핵심 구성 요소의 아주 작은 사용자 정의를 요청하는 여러 클라이언트를 보유하고 있습니다. 우리의 핵심 코드를 NPM 패키지에 보존하고 각 클라이언트 응용 프로그램에서 구성 요소를 확장하여 약간의 수정을 가하고 싶습니다.동일한 선택기로 구성 요소 확장 - 각도 2/각도 CLI

이렇게하려면 자식 구성 요소를 확장해야하지만 동일한 선택기를 유지해야합니다. 그렇지 않으면 각 부모 구성 요소를 수정해야합니다.

원본 구성 요소를 확장 구성 요소로 가져오고 templateUrl에 대한 node_modules에 대한 상대 링크를 사용하여 aot = false 빌드로이 작업을 수행 할 수있었습니다. 그런 다음 app.module에서 확장 구성 요소를 선언하고 app.module에서 원래 구성 요소를 삭제합니다 (선택기가 충돌하지 않도록).

aot = false로 설정하면 문제가 없지만 빌드 할 때 원본 구성 요소에 대해 "클래스에서 모듈을 결정할 수 없습니다"오류가 발생합니다.

다른 구성 요소를 확장하고 선택기를 동일하게 유지하면서 AOT 컴파일의 이점을 얻을 수있는 방법이 있습니까?

+1

'@Component()'주석이없는 기본 클래스를 사용하여 구체적인 구현에만 추가 할 수 있습니다. –

답변

0

전략을 변경하지 않고 목표를 달성 할 수 있는지 확실하지 않습니다 (selector-conflicts보기).

필자는 개인적으로 구성 요소의 올바른 구현을 제공하는 고객 클래스 (Injection Beyond Classes)와 결합 된 dynamic component loader 메커니즘을 사용하려고합니다. 고객이 있다면로드합니다. 그렇지 않은 경우 기본값입니다.

물론 구성 요소에는 다른 선택기가 있습니다.