2017-10-19 22 views
0

シンプルなボタンとディレクティブを持っています。ボタンのスタイルにアクセスしたいので、onclick()関数を使ってMarginLeftを追加します。クリックでこれをどのように使用できますか?助けてください:カスタムディレクティブangle 4でonclick()を実装する

ディレクティブ:

@HostListener('onClick') onClick(){ 
    this.element.nativeElement.style.marginLeft=20; 
    console.log("marzi"+this.element.nativeElement.style.marginLeft); 
} 

リモートことができますこの方法:あなたのディレクティブでHostListenerを使用することができ

<p Bluecolored> 
    new-fom works! 
</p> 
<h1 Bluecolored>Blue Colored</h1> 
<button (click)="clicked()" Bluecolored>Click</button> 

答えて

0

:これはテンプレートである

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

@Directive({ 
    selector: '[Bluecolored]' 
}) 
export class BluecoloredDirective { 

    constructor(private element:ElementRef) { 
    console.log(element); 
    element.nativeElement.style.color="blue"; 
    } 
clicked(){ 
    this.element.nativeElement.style.marginLeft=20; 
    console.log("marzi"+this.element.nativeElement.style.marginLeft); 
} 
} 

(click)="clicked()"ボタンからも

私はonClickという名前を付けましたが、それもクリックした名前にすることができます

+0

domから特定の要素を選択したいのですが、どうすればいいですか? – user3368703

+0

HostListenerは、ディレクティブがバインドされている要素のイベントだけをリッスンします。 –

+0

ボタンのクリックで複数の要素を変更したい場合は、おそらくコンポーネントと要素のスタイルを制御する変数(またはクラスを切り替える変数)を使用する方がよい場合は、前のコメントを編集するのに遅れていたので、 。 –

関連する問題