如何获取元素的ElementRef?

时间:2016-01-25 13:08:08

标签: typescript angular

我正在使用DCL loadnexttolocation加载组件。有没有办法可以在指定的元素中加载组件。我的意思是我想在默认情况下更改它加载的位置。这是我的傻瓜:http://plnkr.co/edit/2dKxNAOgqYqGn4n0u8PT?p=preview

add() {
  this._dcl.loadNextToLocation(DynamicCmp, this._elementref);
}

这是我提出事件时的代码.. elementref始终考虑根组件。有没有办法可以在根目录中找到子元素的elementref?

我需要的是要在此元素中加载的组件:

<div #location id="location"></div>

1 个答案:

答案 0 :(得分:3)

添加模板变量并使用@ViewChild()

查询该元素
@Component({selector: 'some-selector',
  template: `
  <div #location id="location"></div>      `
export class MyComponent {
  // only set after `ngAfterViewInit`
  @ViewChild('location') location;
  constructor(private _dcl: DynamicComponentLoader, private _elementref: ElementRef) {}

  add() {
    this._dcl.loadNextToLocation(DynamicCmp, this.location);
  }
}

Plunker