2017-01-28 3 views
0

버튼을 클릭하여 구성 요소 팩터 리를 통해 다중 드롭 다운을 추가하고 있습니다. 새 드롭 다운을 추가 할 때마다 문제가되는 것은 이전 드롭 다운의 맨 위에 표시됩니다. 아래에서 필요하기 때문입니다. 동일한 유형의 다른 구성 요소와 관련하여 새 구성 요소의 위치를 ​​설정하는 방법이 있습니까?동적으로 생성 된 구성 요소의 각도 2 위치

@ViewChild('additionalDropdown', { read: ViewContainerRef }) 
private additionalDropdown: any; 

...

let componentFactory = this.resolver.resolveComponentFactory(MultiselectComponent); 
let componentRef = this.additionalDropdown.createComponent(componentFactory, 0, this.additionalDropdown.injector) 

틀 :

<ng-container #additionalDropdown></ng-container> 
+0

이 질문이 'css'가 아닌가? 당신은 그들을 위치 시키려고 무엇을 했습니까? – lexith

답변

2

삽입 된 구성 요소의 위치에 createComponent() 번째 인자이다.

createComponent(componentFactory, 0)을 수행하고 있으므로 항상 첫 번째보기로 구성 요소 을 컨테이너에 삽입합니다 (0 = 첫 번째 위치).

두 번째 인수에 값을 전달하지 않은 경우 구성 요소는이라는 마지막보기로 에 삽입되지만 3 개의 인수를 전달하기 때문에 구성 할 수 없습니다.

가 작동합니다 당신은 두 번째 인수로 null를 전달하는 시도 할 수 있지만, 잘 모르겠어요 :

this.additionalDropdown.createComponent(componentFactory, null, this.additionalDropdown.injector); 

아니면 수동 카운터 (이 확실히 작동 할) 수 :

const counter = 0; 
this.additionalDropdown.createComponent(componentFactory, counter++, this.additionalDropdown.injector); 
+1

정말 고맙습니다. 'null'은 일하지 않았습니다. –