输入[时间]不接受来自控制器的值

时间:2016-07-29 19:56:34

标签: javascript angularjs

我在格式化数据时遇到问题,因此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);

2 个答案:

答案 0 :(得分:1)

由于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

  

注意:输入=&#34;时间&#34; Firefox或Internet Explorer 10不支持   和早期版本。

答案 1 :(得分:0)

$scope.stuff = {
    starttime: new Date(); // initialize as a date instead of a string
}

基本上,您将变量初始化为字符串。当您尝试将该字符串格式化为日期时,它会导致它失败。如果您预计某个日期,请将其设置为新日期。