我有一個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