Angular2 DOMContentLoaded,Lifecycle Hook

时间:2016-05-01 15:57:50

标签: typescript angular

我正在使用角度2(TS)并需要一些帮助:

     constructor(public element:ElementRef){}  
     ngOnInit(){
       this.DOMready()
     }  

     DOMready() {
       if (this.element) {
         let testPosition = this.element.nativeElement.getElementsByClassName("_mypost");
         console.log(testPosition);
         for (let i = 0; i < testPosition.length; i++) {
         console.log(testPosition[i]);
         }
     }else {
        setTimeout(this.DOMready, 100)
    }

我的问题是:
1)当文档加载时,我无法正确地抓住时间并准备好使用它(这段代码是我拥有的最好的,是的,我尝试了angular2生命周期钩子......)
2)console.log(testPosition) - 给出我想要的列表(长度为10),
但如果它在console.log(testPosition [0])上发生变化,则表示未定义。而我的console.log(testPosition [i])什么都没打印 THX)

1 个答案:

答案 0 :(得分:1)

如果您想访问DOM,则需要使用

 ngAfterViewInit(){
   this.DOMready()
 }  

或投影内容

 ngAfterContentInit(){ // or ngAfterContentChecked
   this.DOMready()
 }  

有更好的方法可以访问视图中的元素。

参见例如angular 2 / typescript : get hold of an element in the template