输入[时间]不接受来自控制器的值
我在正确格式化数据时遇到问题,以便angularjs将数据填入类型为“time”的输入字段。你能帮我弄清楚我错过了什么吗?输入[时间]不接受来自控制器的值
HTML:
<input type="time" id="exampleInput" name="input" ng-model="stuff.starttime"
placeholder="HH:mm:ss" min="00:00:00" max="17:00:00" >
控制器:
$scope.stuff = {
originlevel2: "",
destinationlevel2: "",
destination2: "",
origin2: "",
starttime: "",
endtime: ""
}
var starttime = jsonArray2[0]["starttime"];
$scope.stuff.starttime = new Date(starttime);
由于jsonArray2[0]["starttime"]
的值是01:00:00
。
因此,new Date(jsonArray2[0]["starttime"])
是无效日期。
您可以改为以下内容:
var d=new Date();
starttime='01:00:00' // jsonArray2[0]["starttime"]
starttime=starttime.split(':').map((e)=>parseInt(e))
d.setHours(starttime[0]);
d.setMinutes(starttime[1]);
d.setSeconds(starttime[2]);
// Then
$scope.stuff.starttime= d;
后,与Chrome或Safari尝试。
Note:
Note: type="time" is not supported in Firefox, or Internet Explorer 10 and earlier versions.
$scope.stuff = {
starttime: new Date(); // initialize as a date instead of a string
}
基本上你的初始化您的变量为一个字符串。当您试图将该字符串格式化为日期时,它会导致它失败。如果您期待日期,则将其设置为新的日期。
这似乎已经帮助。现在它正在填充“时间”输入,但它缺省为当前时间。我似乎无法弄清楚如何将我的变量值“01:00:00”转换为我的输入值。 – ryanh
请为此代码添加一些解释来帮助OP。这将有助于提供未来观众可以从中学习的答案。有关更多信息,请参阅[答案]。 –
什么是'jsonArray2 [0] [ “开始时间”]' –
值是值:01:00:00 – ryanh