如何解决Angularjs中未定义错误的时刻?

时间:2017-08-30 07:06:22

标签: html angularjs meanjs

我想使用meanjs app中的日期范围功能过滤基于invoice_date的项目(开始日期和结束日期)。

  • 我的问题是日期过滤功能在plunker and my localHost production中完美运行,但在推送到服务器时,如果某些May month数据显示最多invoice_date个数据invoice_date 1}}值日期是`2017-08-24和2017-07-27'这些数据没有显示在表格中,我不知道我在哪里犯了错误以及我错过了什么..... My Plunk

  • 请看我的傻瓜参考。

  • 我显示invoice_date,因此这是我想要用于过滤的字段。

  • 所以我一直在寻找,我想过滤24-05-2017作为开始日期和结束日期:例如: - 如果我们选择开始日期,如{{1表格中的结束日期为24-08-2017这两个交易只需要显示或过滤...所以我使用了日期范围过滤器来实现这个解决方案,但在服务器中它不适合我们救命。

  • 在我的服务器中,如果我选择end date作为今天的日期,所有数据都显示在表格中,那么我认为问题基于这些字段{{1} }

  • 终端中的
  • enter image description here如果我们解决了这个错误肯定会得到解决方案就会出现这个错误,我自己试了但是我无法解决这个问题...所以请帮助解决这个问题。< / p>

控制器:

$scope.from = new Date(2014, 04, 30);
$scope.to = new Date(2019, 08, 25);

HTML

 .filter('dateRange', function() {
    return function(records, dateKey, from, to) {
        return records.filter(function(record) {
            return !moment(record[dateKey], 'YYYY-MM-DD').isBefore(moment(from))
            && !moment(record[dateKey], 'YYYY-MM-DD').isAfter(moment(to));
        });
    };
})

过滤器: -

<input type="date" class="form-control" name="from" ng-model="from">

<input type="date" class="form-control" name="to" ng-model="to">

3 个答案:

答案 0 :(得分:0)

我认为你错过了配置&amp;注入你的模块。请使用here

中摘录的步骤
  1. 首先使用bower安装时刻库

    Lines

  2. 然后包括以下内容:

    bower install angular-moment --save&amp; moment.js

  3. 在您的模块中配置

    angular-moment.js

    在控制器中使用,如

    var myapp = angular.module('myapp', ['angularMoment']);

答案 1 :(得分:0)

过滤数据的问题通常是由时区引起的。

尝试将.format('YYYY-MM-DD')添加到过滤器,例如:

.filter('dateRange', function() {
    return function(records, dateKey, from, to) {
        return records.filter(function(record) {
            return !moment(record[dateKey], 'YYYY-MM-DD').isBefore(moment(from).format('YYYY-MM-DD'))
            && !moment(record[dateKey], 'YYYY-MM-DD').isAfter(moment(to).format('YYYY-MM-DD'));
        });
    };
})

答案 2 :(得分:0)

我通过在index.html文件中添加此行来解决此问题,请在index.html中添加此行并再次运行。