2016-11-04 77 views
1

我正在尋找一種方法來綁定我的數字屬性到時間輸入。 我想這樣做,因爲我的模型屬性只能是類型編號。我想通過綁定將時間值轉換爲秒。 我試過這段代碼:Angular2綁定數字到輸入時間

<input type="time" step="1" [ngModel]="value.value | timeToNumber" (ngModelChange)="value.value = $event"> 

我timeToNumber管轉換字符串 「HH:MM:SS」 到秒。但它不起作用,因爲輸入不能接受數字類型。 我該如何設法做到這一點?

回答

0

我想是因爲類型的輸入的元素之後調用 ngModelChange的無限循環中已經改變,這將導致調用管道「timeToNumber」這將導致ngModelChange再次叫你不能做這樣..

您可以通過另存一個變量來解決它:例如「value.valueForm」,它將保持您的管道版本值「value.value」。

例如:

  <input type="time" step="1" placeholder="time in seconds.." name="myTime" #iTime #myTime="ngModel" 
        [ngModel]="value.valueForm" 
        (ngModelChange)="value.valueForm=onChange($event, iTime)" /> 


onChangeCash(eventStr: string, eRef): string { 
    var res = this.getNumberOnChange(eventStr, eRef); // gets current value of element using eRef. Pipe it and return new piped value as res. 
    this.value.value = this.getNumberOfStr(res); // gets new piped value as res and convert it to Model value you need to save. 
    return res; 
} 

對不起,不具有getNumberOnChange(),getNumberOfStr()的一個例子。