预计是一个日期angular.js

时间:2015-09-02 01:20:38

标签: javascript angularjs mongodb date

我从mongodb中提取这个JSON,并且我有一个日期字段,其类型为DATE。

我希望能够在界面中根据需要更改日期,为此我需要一个输入类型日期字段,其属性为ng-model =" 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 =&#34; date&#34;这是正确的格式。

1 个答案:

答案 0 :(得分:0)

这就是我使用的。我删除所有存在的$ formatters,$ parsers with .splice,因为我不需要,但你可能想保留它们。

如何使用on指令就像catch

type="date" as-date