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

问题描述:

我在正确格式化数据时遇到问题,以便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); 
+0

什么是'jsonArray2 [0] [ “开始时间”]' –

+0

值是值:01:00:00 – ryanh

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

+0

是否有另一种方式获得使用“starttime = starttime.split(':')。map((e)=> parseInt(e))”的相同数据? Ionic给我的应用程序的死亡白屏,这里是错误“Uncaught SyntaxError:Unexpected token =>,http://192.168.135.1:8100/js/controllers.js” – ryanh

+0

a.map(function(e ){return parseInt(e,10)})做这个改变照顾了我的离子问题。 – ryanh

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

基本上你的初始化您的变量为一个字符串。当您试图将该字符串格式化为日期时,它会导致它失败。如果您期待日期,则将其设置为新的日期。

+0

这似乎已经帮助。现在它正在填充“时间”输入,但它缺省为当前时间。我似乎无法弄清楚如何将我的变量值“01:00:00”转换为我的输入值。 – ryanh

+0

请为此代码添加一些解释来帮助OP。这将有助于提供未来观众可以从中学习的答案。有关更多信息,请参阅[答案]。 –