동적 레이아웃과 함께 작동하는 각도 1.x 앱이 있습니다. 앱은 화면의 메타 데이터가있는 레이아웃 json을 받고 간단히 컴파일 된 구성 요소를 생성하고 화면을 만듭니다.각도 5로 동적으로 기존 구성 요소 컴파일 및 렌더링
관련 "중요한 코드는"다음과 같습니다
const element = this.$compile(`<${this.control.type} control="control" data="data"></${this.control.type}>`)(scope);
this.$element.replaceWith(element);
을 지금, 나는 5 각도에이를 마이그레이션하기 위해 노력하고있어 나는 5 각도는 DOM 조작을 떨어 있음을 이해 한하고 $이 기능을 컴파일 .
저는 동적 HTML (예 : {{1 + 1}})과 다른 비추천 물체 (각도 5 이전)를 렌더링하는 방법을 알고 있지만 렌더링에 적합하지 않은 솔루션을 찾았습니다 동적으로 만들어진 구성 요소 (및 내부 바인딩 처리).
나는이 AngularJS와 같은 자기에 의해 구성 요소를 만들 수있는 방법입니다 기능
,이 기사를 읽고 [다음은 각도의 동적 구성 요소에 대해 알아야 할 것입니다 ] (https://blog.angularindepth.com/here-is-what-you-need-to-know-about-dynamic-components-in-angular-ac1e96167f9e) 및 [이 답변] (https : // stackoverflow. com/a/47472523/2545680). –
을 통해 무엇을해야하는지에 대한 아이디어를 얻을 수 있지만 그 길로가는 것이 좋습니다. AngluarJS에서 동일한 전략을 사용했지만 Angular로 마이그레이션 한 후에는 서비스의 구성 요소에 대한 모든 참조를 유지하기 시작했으며 필요한 경우 수동으로 삽입했습니다. 내가 링크 된 기사에서는 구성 요소를 수동으로 조작하는 방법을 보여줍니다. –
@ AngularInDepth.com - 뭔가 다른 것을 찾고있었습니다 (즉석에서 바인딩이있는 기존 구성 요소를 컴파일하는 경우). 내 주요 문제는 구성 요소의 문자열 이름을 유형으로 변환하는 것이 었습니다. 이 링크의 사용 사례는 다음과 같습니다. http://blog.angular.cool/2016/11/dynamic-components-with.html 현재이 경로는 제가 취한 경로입니다. 여분의 문자열 유형 매핑 개체를 만들고 주입 가능한 바인딩을 사용하여 동적 구성 요소를 즉시 만들었습니다. –