2017-06-22 4 views
0

angle4 clockpickersが見つかりませんでしたので、jQueryを使用することにしましたが、選択した時刻を変数にバインドすることができず、私のtypescriptコンポーネント..ここに私のコードがありますclockPickerの値をバインドする方法

console.log(this.value)私には選択された値が表示されますが、宣言された変数に割り当てることはできません。

コンポーネント:

ngAfterViewInit() { 
    jQuery("#timePicker").clockpicker({ placement: 'bottom', donetext: 'Done', autoclose: true, vibrate: true, }) 
    .find('input').change(function (a) { 
     console.log(a); 
     console.log(this.value) 
    }); 
} 

HTML:あなたがfunctionキーワードで関数を定義する場合

<div class="timeHolder" 
    id="timePicker" 
    data-placement="right" 
    data-align="top" 
    data-autoclose="true"> 
    <input type="text" 
     [(ngModel)]="setTime" 
     (input)="valuechange($event)" /> 
    {{setTime}} 

答えて

0

はそれがthisの値を変更します。したがって、推奨@ developer033ではなく、thisの値を変更しない矢印関数を使用してください。次のコードを使用してください:

ngAfterViewInit() { 
    jQuery("#timePicker").clockpicker({ placement: 'bottom', donetext: 'Done', autoclose: true, vibrate: true, }) 
    .find('input').change((e) => { 
     console.log(e); 
     console.log(e.currentTarget.value); 
     // use that to access angular variables 
     this.setTime = e.currentTarget.value; 
    }); 
} 
+0

IMO、 'arrow-functions'を使う方が良いです。 – developer033

+0

@ developer033合意。以前はjqueryコードを変更したくなかったが、今はjqueryコードを変更するほうがはるかに良いと認識している。 – Dhyey

+0

@Dhyeyありがとう – Thendo

関連する問題