input[date]
コントローラーでコントロールに初期値を割り当てようとしています。
AngularJSinput[date]
のドキュメントから、
モデルは常に Date オブジェクトである必要があります。そうでない場合、Angular はエラーをスローします。
それらは、Plunker で動作input[date]
するコントローラー (簡略化されたバージョンを貼り付けた) を初期化する方法の実例を提供します。
<script>
angular.module('dateInputExample', [])
.controller('DateController', ['$scope', function($scope) {
$scope.value = new Date(2013, 9, 22);
}]);
</script>
<form name="myForm" ng-controller="DateController as dateCtrl">
<input type="date" id="exampleInput" name="input" ng-model="value" />
</form>
アプリケーションで同じことを行うと、常に次のメッセージが表示されます。
The specified value 'Sun Nov 09 2014 00:00:00 GMT+0100 (CET)' does not conform to the required format, 'yyyy-MM-dd'
コントロールは初期化されません。有効な日付オブジェクトではなく、ISO 形式の文字列を期待しているようです。
angularJSを使用した HTML5 日付入力フィールドのデフォルト値の設定では、別の方法が提案されています。
<input type="date" ng-model="date" value="{{date}}">
...
$scope.date = $filter("date")(Date.now(), 'yyyy-MM-dd');
「yyy-MM-dd」文字列をモデルに割り当てるだけです。ドキュメントによると、文字列は有効な Date オブジェクトではないため、これはエラーをスローするはずですが、この 2 番目の方法は私には機能しますが、面白いことに、この方法を使用するように変更された元のPlunkerで使用すると機能しません。
input[dates]
コントローラーの値を期待通りに設定できないのは何が原因でしょうか?- alt メソッドが私 (および他の人) で機能しているのに、提供されている簡単なデモで機能しないのはなぜですか?
入力[タイプ]が作成され、初期値が割り当てられているコードからの抜粋を次に示します。
index.html
<input type="date" name="input", ng-model="value" />
コントローラ
.controller("UploadsCtrl",["$scope","$filter", function($scope, $filter) {
// $scope.value = new Date(2013, 22, 9); // Not working
$scope.value = "2015-10-10"; // Working!!!!
...