2016-07-29 7 views
1

データが正しくフォーマットされているため、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] [ "STARTTIME"]の値であり、どのような' –

+0

値は次のとおりです。一時00分00秒 – ryanh

答えて

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; 

した後、クロムやサファリを試みること。


Note

Note: type="time" is not supported in Firefox, or Internet Explorer 10 and earlier versions.

+0

"starttime = starttime.split( ':')。map((e)=> parseInt(e))を使用して同じデータを取得する別の方法はありますか?私のアプリで死の白いスクリーンを与えています、そして、ここでエラーです "Uncaught SyntaxError:Unexpected token =>、http://192.168.135.1:8100/js/controllers.js" – ryanh

+0

a.map(function(e ){return parseInt(e、10)})この変更を行うことで、イオンに関する問題が解決されました。 – ryanh

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

基本的にはあなたの文字列として、あなたの変数を初期化します。その文字列を日付として書式化しようとすると、失敗しました。日付が必要な場合は、新しい日付に設定します。

+0

これが役立っているように見えます。これは現在、「時間」入力に値を設定していますが、現在の時刻にデフォルト設定されています。変数値 "01:00:00"をどのように変換して、その値で入力するのか分かりません。 – ryanh

+0

このコードがOPに役立つ理由の説明を追加してください。これにより、今後の視聴者からの回答が得られます。詳細については、[回答]を参照してください。 –

関連する問題