2016-09-21 71 views
1

我有一個運行每當用戶改變wj-input-time的值的函數下面的代碼:問題與Wijmo的ValueChanged事件+數據的結合角2

@Component({ 
    selector: 'my-app', 
    template: '<wj-input-time [step]="1" (valueChanged)="test()"></wj-input-time>' 
}) 
export class AppComponent { 

    test() { 
    console.log('test'); 
    } 

} 

以上工作正常,但當我添加數據綁定在輸入valueChanged事件被觸發的應用程序加載時,以及當用戶只需點擊輸入這是不理想的結果:

@Component({ 
    selector: 'my-app', 
    template: '<wj-input-time [(value)]="testDate" [step]="1" (valueChanged)="test()"></wj-input-time>' 
}) 
export class AppComponent { 

    testDate: Date = new Date(); 

    test() { 
    console.log('test'); 
    } 

} 

我花了很多時間閱讀Wijmo的文檔,但它沒有幫助。我錯過了什麼或做錯了什麼?

我使用角2最終和Wijmo 5.20162.211 EVAL

這裏有一個Plunker顯示問題(檢查控制檯日誌):http://plnkr.co/edit/RFo84NEUbypSWwPPu8Go?p=preview

這裏也是截圖: enter image description here enter image description here

回答

1

這是因爲您構建的日期與第二天的確切日期完全相同,但小部件只能精確到分鐘。由於這個原因,小部件在計算出所需的其他值時重寫該變量 - 這是您單擊箭頭按鈕時的情況。

如果您構建的日期確切只有給定的分鐘,第二條日誌消息不會再出現。

@Component({ 
    selector: 'my-app', 
    template: '<wj-input-time [(value)]="testDate" [step]="1" (valueChanged)="test()"></wj-input-time>' 
}) 
export class AppComponent { 

    testDate: Date; 

    constructor() { 
    var d = new Date(); 
    this.testDate = new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes()); 
    } 

    test() { 
    console.log('test'); 
    } 

} 

查看調整後的plnkr code

+0

謝謝!另外一名Wijmo開發人員告訴我,加載時執行valueChanged事件是正確的行爲,因爲綁定會更改該值。我想現在一切都解釋清楚了。 – nunoarruda

+0

那麼我該怎麼做如果想在'valueChanged'中獲得當前值而不綁定'value'? – codefalling