我有一个Angular 2组件,我想通过它的id检索元素div <div id ="myId">
。我尝试在我的组件(TypeScript)中执行:document.getElementById("myId")
,但出现错误:“无法找到名称文档”。我发现在其他帖子中,我们可以使用@ViewChild做类似的事情,但是我不明白我们如何使用div来创建任何想法?Angular 2:访问组件中的元素,getDocumentById不起作用
11
A
回答
16
你可以通过添加一个TemplateRef来使用带div的@ViewChild。
模板
<div id ="myId" #myId>
组件
import { Component, ViewChild, ElementRef, AfterViewInit } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements AfterViewInit {
@ViewChild('myId') myId: ElementRef;
constructor() {
}
ngAfterViewInit() {
console.log(this.myId.nativeElement);
}
}
This blog post卡拉埃里克森是越来越熟悉角的方法来这样搞真的很好看。
+0
谢谢!这工作! :) – eagleEye
6
模板引用变量添加的元素,你需要访问:
<div #myDiv></div>
而在组件:
class MyComponent implements AfterViewInit {
@ViewChild('myDiv') myDiv: ElementRef;
constructor() {}
ngAfterViewInit() {
console.log(this.myDiv);
}
}
相关问题
- 1. Angular 2组件指令不起作用
- 2. 从Angular 2组件中访问`selector`
- 3. 如何从家长访问用于测试Angular 2的子组件的元素?
- 4. 交换数组中2个元素的函数不起作用
- 5. Angular 2 routerLink不起作用
- 6. Angular 2 this.router.navigate不起作用
- 7. Angular 2.focus()不起作用
- 8. Angular 2 [(ngModel)]不起作用
- 9. Angular 2(click)不起作用
- 10. HashLocationStrategy不起作用Angular 2
- 11. Angular 2单击事件不起作用
- 12. 访问Angular 2中的DOM元素并更改元素的类属性
- 13. Angular 2访问JSON文件
- 14. 如何在Angular 2组件中访问不同类型的子组件?
- 15. 角2表单元素作为组件 - 验证不工作
- 16. 如何访问元组中的元素?
- 17. Angular 2 [禁用]不起作用
- 18. Angular &&条件不起作用
- 19. Angular 2 CustomReqeuestOptions merge()因为Angular 2 RC.5不起作用
- 20. Angular 2依赖注入不起作用
- 21. Angular 2. PrimeNG列表框不起作用
- 22. Angular 2 - 动画转换不起作用
- 23. Angular 2英雄之旅不起作用
- 24. Angular 2 - 后退路线不起作用
- 25. 如何基于索引访问Angular 4中的数组数组中的元素?
- 26. 如何在angular 2中使用ELementRef或@ViewChild访问特定的DOM元素?
- 27. 如何从Angular 2中的导入组件访问数据?
- 28. Angular 2,如何访问视图端口中的组件?
- 29. 访问Angular 2中组件的儿童属性
- 30. Angular - >呈现和克隆元素 - >作用域访问
你能告诉你的代码 – Gab