我正在使用角度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)
答案 0 :(得分:1)
如果您想访问DOM,则需要使用
ngAfterViewInit(){
this.DOMready()
}
或投影内容
ngAfterContentInit(){ // or ngAfterContentChecked
this.DOMready()
}
有更好的方法可以访问视图中的元素。
参见例如angular 2 / typescript : get hold of an element in the template