2016-08-03 114 views
0

只爲了解事情的工作原理。獲取元素的參考

讓說我有fellowing代碼

<my-element #ref></my-element> 
<button (click)="ref.classList.add("prettify")"></button> 

它會拋出一個錯誤,因爲ref回報MyElement一個實例。

我如何才能將<my-element>作爲dom元素?我是不是要在我的課堂上保持ElementRef並且做ref.el.classList.add(...)

我與表單元件試圖太

<form #ref></form> // return a ref about the element 
<form #ref="ngForm"></form> return a ref about NgForm 

回答

1

@ViewChild可以用來得到一個參考元件如這裏所示。

<my-element #ref></my-element> 

//<---<button (click)="ref.classList.add("prettify")"></button> I don't understand purpose of having this line. What does button do? 
在組件

import {ViewChild,ElementRef} from '@angular/core'; 

export class AppComponent{ 

    @ViewChild('ref') ref:ElementRef; 

    ngAfterViewInit(){ 
    console.log(this.ref.nativeElement); 
    } 
} 

DEMO:https://plnkr.co/edit/uP7CYM?p=preview

+0

'Button'僅僅是例子 – efxzsh

+0

感謝演示,但如果引用不是呈現又一個元素(如發生什麼事在'* ngIf'中) – efxzsh

+0

NgIf從dom中刪除元素。然後,如果你要求這樣的DOM元素(技術上不存在),它會拋出一個錯誤。 – micronyks