私のモデルは以下のコードで正常に動作しますが、入力タイプが間違っているため、 。警告を表示しないで、値のバインドが正しいことを確認する方法を教えてください。 モデルの値を日付として表示し、これをモデルのINTとして保持したいとします。 私のモデルは使用していますエラー:ngModel:datefmt、モデルは日付オブジェクトではありません。日付になると `yyyyMMdd`となるでしょう
$scope.start_date = "20170818";
HTML
<input type="date" Date-Converter ng-model="start_date" />
Error: ngModel:datefmt Model is not a date object Expected
20170818
to be a date
// Converts value parameter from yyyyMMdd into yyyy/MM/dd format and vice versa
app.directive('dateConverter', function($filter) {
return {
restrict: 'A',
require: 'ngModel',
link: function(scope, element, attr, ngModel) {
if (!ngModel) return; // do nothing if no ng-model
ngModel.$formatters.length=0;
ngModel.$parsers.length=0;
function fromUser(text) {
var value = $filter('date')(text, "yyyyMMdd");
return value;
}
function toUser(text) {
var value = new Date();
if(text != undefined && text!='' && text.length==8){
var year = text.substring(0,4);
var month = text.substring(4,6);
var day = text.substring(6,8);
var value = new Date(year, month-1, day);
}
return value;
}
ngModel.$parsers.push(fromUser);
ngModel.$formatters.push(toUser);
}
};
});