我想在typescript ngOnInit()中获取html生成的id值。 这是Angular2的问题 这是场景。
<html>
<div *ngFor='let post of data; let i = index' [attr.data-index]="i">
<button id="cdata_{{i}}">Click<button>
//here id will generate for the button in loop
</div>
</html>
现在在typescript(.ts)文件中
ngOnInit(){
//How to get the index value here in this function?Without any click function in html.
}
我必须写一下onInit.this应该加载页面加载。我生成的id显示在Html页面上,但是,我想让这些id在typescript>ngOnInit
中执行某些操作。
ngOnInit(){}
中的,这应该是这样的=&gt;
this.service.x.subscribe(data=>{
var indexK=document.getElementById("cdata_"+i);
console.log("indexK"); })
这个不起作用。这应该像
那样打印cdata_0
cdata_1
cdata_2
cdata_3
答案 0 :(得分:0)
如果要访问DOM,则无法通过ngOnInit中的id获取元素,因为尚未加载DOM。你需要像这样调用你的函数(或者你可以使用observable)
ngAfterContentInit(){
data.forEach((item, index) => {
var indexK=document.getElementById("cdata_"+index);
console.log("indexK");
});
}