2017-03-31 3 views
1

구성 요소의 html 템플릿을 여러 위치에서로드 할 수있는 특정 사용 사례가 있습니다. 예를 들어 CLI가있는 각도 2 - 다른 서버의 구성 요소 템플릿

,

@Component({ 
    selector: 'app-home', 
    template: require('http://xyz/home.component.html'), **// This can be from local or any other server** 
    styleUrls: [require('http://xyz/home.component.css')], 
}) 

내가 이것에 대해 이동하거나 내 대안이 무엇인가하는 방법을 이해하는 데 도움이 필요합니다.

감사

+2

수 없습니다. 템플리트는 JavaScript에 사전 컴파일되어 있어야하며 결과는 응용 프로그램 자체에 번들됩니다. 런타임에 동적으로로드되지 않습니다. –

+0

내가 모듈에 대해 가지고있는 것처럼 게으른 로딩 요소가 있는지 궁금합니다. –

+0

@DhavalManiar 컴포넌트 팩토리는 필요에 따라 컴파일됩니다 (물론, @ NgModule의'entryComponents' 섹션에 컴포넌트를 선언하지 않았다면 -이 경우 모듈이 정의 될 때 항상 컴파일됩니다), 컴포넌트 코드는 항상 모듈 번들 내부에 존재한다. 모듈 로딩에 대한 최상의 경험을 가지려면 한 가지 기능 규칙 (https://angular.io/docs/ts/latest/guide/ngmodule.html#!#feature-modules 참조) 당 하나의 모듈을 사용하십시오. – metamaker

답변

0

당신은 로컬 경로에 있지 지적 구성 요소에 대한 템플릿 URL을 제공 할 수 없습니다 당신이 require는 로컬 경로에서,하지만 여전히 당신은 템플릿 내용에서 동적 요소를 작성하여 당신이 원하는 것을 달성 할 수 없습니다 수 없습니다 .

단점은 AoT 컴파일러 대신 Angular JIT 컴파일러를 사용해야한다는 것입니다 (자세한 내용은 https://angular.io/docs/ts/latest/cookbook/aot-compiler.html 참조). 또한 서버에서 CORS 요청을 활성화해야합니다.

당신은 당신이 다음과 같이 원하는 것을 할 수 있습니다

  1. 사용 http (https://angular.io/docs/ts/latest/guide/server-communication.html는) 다른 서버에서 템플릿의 콘텐츠를 가져올 수 있습니다.
  2. How can I use/create dynamic template to compile dynamic Component with Angular 2.0?에서 권장되는 템플릿을 컴파일하십시오.
  3. 동적 구성 요소의 선택기를 포함하려는 템플릿의 템플릿 (예 : <dynamic-detail></dynamic-detail>)에 작성합니다. 이 Angular2 사용되는 방법의 방법을위한 것이 아닙니다, http://plnkr.co/edit/ZLYGBRl41SlTNoX8xQeD

    는 기억, 그래서 생산이를 사용하여 조심 :

은 (청소하고 더욱 향상시킬 수있다) 예 구현이 Plunker를 참조하십시오.

+0

요점을 얻고 & couldnt는 요구 사항이 분명 각도 애플 리케이션을 사용하는 의도를 위반한다는 것에 더 동의합니다. 가상 디렉터리가 다른 동일한 서버에 솔루션을 배포 할 수 있습니다 (CORS 문제를 해결할 수 있음). 하지만 여전히 HTTP 호출을 포함 .. : ( –

+0

우리는 또한 API 서버에서 angular2 양식에 대한 템플릿을 제공하는 내 실제 작업에서 응용 프로그램의 아키텍처가, 그래서이 솔루션을 작동합니다. 각도 컴파일러 구성 요소 컴파일 NgComponentOutlet 존재합니다 (https : //angular.io/docs/ts/latest/api/common/index/NgComponentOutlet-directive.html). – metamaker

+0

나는 각도 2RC4 (그래, 함정이었다)에서 2.4 ...로 업그레이드하는 데 어려움을 겪고있다. 희망 4.0은 나를 그렇게 괴롭히지 않습니다.다른 노트에서, 나는 youve가 제공 한 샘플을 보게 될 것입니다. (나는이 유스 케이스로 단 하나도 못 들었습니다.) 솔루션을 찾으려고 이미 힘 쓰고 있습니다. –