2016-05-16 5 views
39

私は日付フィールドがあり、デフォルトでプレースホルダーを削除します。角度2を使用するHTML5イベント処理(onfocusとonfocusout)

私はプレースホルダを除去するためイベントonfocusoutとONFOCUS javascriptのを使用しています。

angular2指令の使用について助けてもらえますか?

このように解決しようとしますが、入力フィールドのタイプをリセットする際に問題が発生しています。

import { Directive, ElementRef, Input } from 'angular2/core'; 
@Directive({ 
    selector: '.dateinput', 
    host: { 
    '(focus)': 'setInputFocus()', 
    '(focusout)': 'setInputFocusOut()', 
    }}) 

    export class MyDirective { 
     constructor(el: ElementRef) { this.el = el.nativeElement; console.log(this.el);} 

     setInputFocus(): void { 
     //console.log(this.elementRef.nativeElement.value); 
     } 
    } 

答えて

83

次のように代わりにonfocusonfocusout

(focus)(focusout)を使用してみてください: - また、あなたがこのように使用することができます

<input name="date" type="text" (focus)="focusFunction()" (focusout)="focusOutFunction()"> 

: -

一部の人々が好みます標準形式として知られている接頭辞の代替語:

<input name="date" type="text" on-focus="focusFunction()" on-focusout="focusOutFunction()"> 

see hereを結合イベントについての詳細を知っています。

あなたがホスト要素が指定されたイベントを発したときに装飾されたメソッドを呼び出しますあなたのユースケース

角度のためHostListnerを使用する必要があります。 @HostListenerは、コールバック/イベントハンドラメソッドのデコレータです。

私の更新作業プランカを見てください。

実施例Working Plunker

+0

... @pradeepおかげで私の更新1を確認してください可能性があります。 – vishnu

+0

あなたは 'dateinput'という名前のディレクティブを使用していますか? –

+0

申し訳ありません。更新したものを確認してください。 – vishnu

関連する問題