我正在寻找一种方法将我的数字属性绑定到时间输入。 我想这样做是因为我的模型属性只能是类型编号。我想用绑定将时间值转换为秒。 我试过这段代码:
<input type="time" step="1" [ngModel]="value.value | timeToNumber" (ngModelChange)="value.value = $event">
我的timeToNumber管道转换字符串&#34; HH:mm:ss&#34;到秒。但它不起作用,因为输入不能接受数字类型。 我怎么能设法做到这一点?
答案 0 :(得分: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()的示例。