2017-06-22 48 views
0

所以,因爲我找不到任何angular4 clockpickers我決定使用jQuery之一,但我不能將選定的時間綁定到一個變量,我需要這樣我就可以操縱他們在我的打字稿組件..這裏是我的代碼如何綁定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:

<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,最好使用箭頭函數。 – developer033

+0

@ developer033同意。在我不想更改jquery代碼之前,現在我意識到修改jquery代碼 – Dhyey

+0

@Dhyey謝謝你 – Thendo