Я вытаскиваю этот JSON из mongodb, и у меня есть поле даты, которое имеет тип DATE.Ожидается, что будет date angular.js
Я хочу, чтобы иметь возможность изменить дату, если это необходимо в интерфейсе, для этого мне нужно поле даты ввода типа с атрибутом нг-модель = «event.date», так же, как это:
<input class="tables__sidebar-input" type="date" ng-model='event.date'>
Это бросает ошибку:
Error: [ngModel:datefmt] Expected `2015-09-03T00:00:00.000Z` to be a date
Я нашел причину ошибки и установил ее. Я нашел эту директиву, которая должна исправить ошибку:
angular.module('adminApp')
.directive("myModelFilter", ["$filter", function($filter) {
return {
restrict: 'A', // only activate on element attribute
require: '?ngModel',
link: function(scope, element, attrs, ngModelController) {
ngModelController.$parsers.push(function(data) {
console.log(data);
//convert data from view format to model format
// Grab the parameters
var params = scope.$eval(attrs.myModelFilter);
// Filter with the parameters passed
return $filter(params.filter)(data, params.expr, params.comp);
});
ngModelController.$formatters.push(function(data) {
//convert data from model format to view format
// Grab the parameters
var params = scope.$eval(attrs.myModelFilter);
// Filter with the parameters passed
return $filter(params.filter)(data, params.expr, params.comp);
});
}
};
}])
Чтобы использовать, просто добавьте my-model-filter="{filter:'date', expr:'yyyy-MM-dd'}"
в поле ввода, которое я сделал:
<input class="tables__sidebar-input" type="date" ng-model='event.date' my-model-filter="{filter:'date', expr:'yyyy-MM-dd'}">
Но теперь бросает ту же ошибку с действительным форматом :
Error: [ngModel:datefmt] Expected `2015-09-02` to be a date
Что здесь отсутствует?
Я потянув данные из модели обслуживания с помощью контроллера:
получить действие:
retrieve: function() {
var that = this;
this.EventModel.Model.find()
.then(function(result) {
that.$scope.events = result;
});
}
Пожалуйста, ребята, помогите мне! Я уже читал каждый ответ на stackoverflow, каждый пост-блог, и я не могу понять, как его исправить.
Я не хочу использовать маску с текстом типа, я хочу использовать type = "date", который является правильным форматом.
вы смотрели на этот пост ли? http://stackoverflow.com/questions/26486696/angularjs-get-formatted-date-in-ng-model?rq=1 Не похоже, что вам нужна новая директива, просто используйте простое выражение $ filter. –
По структуре, которую я использую, я не могу использовать в контроллере, мне нужен фильтр для решения проблемы. –
Не могли бы вы мне помочь? я могу дать 100 моих очков. –