DOM 수정을 위해 ElementRef, ViewConatinerRef 및 Renderer2로 작업하고 있습니다. 하지만 지금은 동적 ID 선택기로 DOM에 구성 요소를 추가하려고합니다. @viewchild ()없이 이것을하는 방법
app.component.html
//<!-- <div #id_1></div> -->
<div [attr.id]= 'dynamicID'></div>
app.component.ts
export class AppComponent implements OnInit, AfterViewInit {
dynamicID:string = 'id_1';
// @ViewChild('id_1', { read: ElementRef}) ele;
constructor(private vc:ViewContainerRef, private injector: Injector, private resolver: ComponentFactoryResolver, private render:Renderer2) { }
ngOnInit() {
}
ngAfterViewInit() {
let component = this.resolver.resolveComponentFactory(FirstComponent);
let componetRef = component.create(this.injector);
componetRef.instance.data = 'test data';
let hostView = componetRef.hostView;
//here how to get that dynamicID (id_1) and append hostView to that 'dynamicID' div
}
}
감사합니다
- 답변 # 1
- 답변 # 2
많은 검색 끝에 해결책을 얻었습니다.
app.component.html
<div [attr.id]='dynamicID'></div>
app.component.ts
export class AppComponent implements OnInit, AfterViewInit { dynamicID: string = 'test'; constructor( private eRef: ElementRef, private vc: ViewContainerRef, private injector: Injector, private resolver: ComponentFactoryResolver, private render: Renderer2, private app: ApplicationRef ) { } ngOnInit() { } ngAfterViewInit() { let factory = this.resolver.resolveComponentFactory(GridComponent); let node = this.render.createElement('div'); let html = document.querySelector('#' + this.dynamicID).appendChild(node); let componetRef = factory.create(this.injector, [],node); componetRef.instance.data = 'this is dynamically added component'; this.app.attachView(componetRef.hostView); } }
관련 자료
- javascript - reactJS를 사용하여 동적 배열 목록 표시
- Angular 9 애니메이션은 동적 데이터에서 작동하지 않습니다
- r - eventReactive를 사용하여 필터링 된 데이터 행 표시
- directx - id3d11devicecontext - : map을 사용하여 동적 텍스처를 업데이트하면 오프셋 또는 불완전한 데이터가 발생합니다
- python - pandasDataFrameplot ()을 사용할 때 모든 xtick를 표시하는 방법은 무엇입니까?
- python - Pandas를 사용하여 '동적'데이터 프레임을 처리하는 방법은 무엇입니까?
- javascript - React Native Expo에서 Flex를 사용하여 동일한 행에있는 2 개의 카드를 동적 콘텐츠와 정렬
- r - datatable` - =`을 사용한 동적 할당
- reactjs - 이벤트를 사용하지 않고 구성 요소의 속성을 가져 오는 방법
- javascript - 동적 열에 의한 각도 필터
- Angular Form 컨트롤은 작업없이 구성 요소 초기화에서 유효하지 않습니다
- c# - 배열을 테이블의 목록으로 표시하는 방법 Angular
- 각도 - 동적지도 키를 통해지도에 양방향 바인딩
- wordpress - wp_query 또는 get_posts ()를 사용하여 1 년 전 게시물 표시
- flutter - 팹에 아이콘 버튼을 표시하기 위해 목록을 사용하는 것은 작동하지 않습니다
- 각도 구성 요소 표시/숨기기 (클릭을 기반으로이 두 각도 구성 요소를 토글 (표시 또는 숨기기)해야 함)
- reactjs - React 컴포넌트의 prop 인수에 대한 동적 제네릭
- object - 상태 구성 요소를 사용하는 ReactJS 설정 값 정의되지 않음
- 공용 API 용 DOCUMENT를 사용하여 Angular 10 Guard를 내보내는 방법
이를 수행하는 올바른 방법은 Angular의 ngFor 지시문을 사용하는 것입니다. HTML 템플릿의 JSON 배열/객체에 대해 for 루프를 실행할 수 있습니다. 기본 구문은 다음과 같습니다.
data는 데이터베이스 응답이 저장되는 변수입니다. 필요에 따라 내용을 수정하십시오.