Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度JS ng表格日期范围筛选器问题_Javascript_Angularjs_Filter_Date Range_Ngtable - Fatal编程技术网

Javascript 角度JS ng表格日期范围筛选器问题

Javascript 角度JS ng表格日期范围筛选器问题,javascript,angularjs,filter,date-range,ngtable,Javascript,Angularjs,Filter,Date Range,Ngtable,我有一个带有日期范围过滤器的列表,我正在使用ng表。我可以使用ng table轻松过滤名称和其他字符串/数字字段。但是日期范围过滤器似乎不起作用 用于列表的我的json数据 { "data":[ { "cellphone":"24234234234", "createddate":"09/09/2014", "firstname":"Giacomo", "resellerid":"7478454

我有一个带有日期范围过滤器的列表,我正在使用ng表。我可以使用ng table轻松过滤名称和其他字符串/数字字段。但是日期范围过滤器似乎不起作用

用于列表的我的json数据

{  
   "data":[  
      {  
         "cellphone":"24234234234",
         "createddate":"09/09/2014",
         "firstname":"Giacomo",
         "resellerid":"747845473"
      },
      {  
         "cellphone":"24234234234",
         "createddate":"09/02/2010",
         "firstname":"Tomy",
         "resellerid":"747783"
      },
      {  
         "cellphone":"999999",
         "createddate":"09/02/2010",
         "firstname":"Sunny",
         "resellerid":"2312312"
      }
   ]
}
我使用ng repeat遍历这个json对象

过滤框在表外,我使用以下代码

 <table class="table display table-striped table-bordered" ng-table="tableParams">

                <tr ng-repeat="customer in $data | filter: id | filter :name 
              |filter :createdfrom>
                <td data-title="'Reseller ID'" sortable="'resellerid'">
                {{customer.resellerid}}
                </td>
                <td data-title="'Reseller Name'" sortable="'firstname'">
                {{customer.firstname}} {{customer.lastname}}
                </td>
                <td data-title="'Created Date'" sortable="'createddate'">
                {{customer.createddate}}
                </td>
                </tr>
  </table>


您确定
ng model=“createdfrom.createddate”
将任何数据附加到$scope吗

尝试添加

<tr ng-repeat="customer in $data | filter: id | filter :name 
          |filter :createdfrom>
然后像这样使用它:

(function () {
'use strict';
angular.module('app').filter("dateRangeFilter", ['$filter', function ($filter) {
    return function (items, from, to) {
        var df = from;
        var dt = to;
        var result = [];
        for (var i = 0; i < items.length; i++) {
            var date_bet = parseDate(items[i].StartDate);
            if (date_bet >= df && dt >= date_bet) {
                result.push(items[i]);
            }
        }
        return result;
    };
}]);

我使用UI引导日期选择器创建了这个。 看看这是否解决了你的问题

//代码在这里
var myapp=angular.module('NgTableExample',['ngAnimate','ui.bootstrap','ngTable']);
函数解析日期(输入){
返回日期。解析(输入);
}
myapp.filter(“dateRangeFilter”,函数(){
返回函数(项目、从、到){
var df=解析日期(从);
var dt=解析日期(至);
var结果=[];
对于(变量i=0;idf&&dt>日期下注){
结果推送(项目[i]);
}
}
返回结果;
};
});
控制器(“ExampleCtrl”,函数($scope,$filter,NgTableParams){
var self=这个;
风险值数据=[{
姓名:“莫罗尼”,
年龄:50,,
日期时间:1450562394000
}, {
姓名:“西蒙”,
年龄:43岁,
日期时间:1450562394000
}, {
姓名:“雅各布”,
年龄:27岁,
日期时间:1450648794000
}, {
名称:“尼菲”,
年龄:29,,
日期时间:1450648794000
}, {
姓名:“基督徒”,
年龄:34岁,
日期时间:1450475994000
}, {
名称:“天香”,
年龄:43岁,
日期时间:1450475994000
}, {
姓名:“雅各布”,
年龄:27岁,
日期时间:1450475994000
}];
self.sensorTableData=新的NgTableParams({
计数:7
}, {
数据集:数据
});
$scope.today=函数(){
$scope.dt2=新日期(2015年11月26日);
$scope.dt1=新日期(2015年11月17日);
};
$scope.today();
$scope.toggleMin=function(){
$scope.minDate=$scope.minDate?空:新日期();
};
$scope.toggleMin();
$scope.maxDate=新日期(2020年5月22日);
$scope.open1=函数($event){
$scope.status1.opened=true;
};
$scope.open2=函数($event){
$scope.status2.opened=true;
};
$scope.setDate=函数(年、月、日){
$scope.dt1=新日期(年、月、日);
$scope.dt2=新日期(年、月、日);
};
$scope.dateOptions={
年份:“yy”,
开始日期:1
};
$scope.formats=['dd-MMMM-yyyy','yyyy/MM/dd','dd.MM.yyyy','shortDate'];
$scope.format=$scope.formats[0];
$scope.status1={
开放:假
};
$scope.status2={
开放:假
};
});

Ng表格的日期范围过滤器!
从日期开始

迄今为止

{{row.name} {{row.age} {{row.datetime}日期:'dd-MMMM-yyyy'}
继Himanshu Jain的例子之后,我不得不调整它以使其正常工作

(函数(){
"严格使用",;
角度.module('app').filter('dateRangeFilter',['$filter',函数($filter){
返回函数(项目、从、到){
var df=来自;
var dt=至;
var结果=[];
对于(变量i=0;i=df&dt>=日期下注){
结果推送(项目[i]);
}
}
返回结果;
};
}]);

})()

看来我的日期选择器根本没有给出正确格式的日期。我使用了自举日期选择器--当我在datepicker中选择09/02/2010时,所选日期如下所示-createdfrom.createddate:“2010-02-08T18:30:00.000Z”我已经在我的控制器“$scope.format='dd/MM/yyyyy';”中格式化了日期选择器日期,并且它在文本框中完美地显示了日期。可能是什么问题?添加了编辑来回答-可能只是HTML错误-缺少
在打开
标签时的
之前..添加了第三个编辑以回答第二个和第三个问题,这将解决所有问题:)我已复制了筛选器的一部分,引号已经存在。确定。因此,请检查第三个
编辑
。这应该会有帮助:)我试图实现你的代码,但它不适合我。它显示未定义的项目
yourModule.directive('viewValueModel', [
    '$parse',
    function ($parse) {
        return {
            require: 'ngModel',
            link: function (scope, element, attrs, ngModelCtrl) {
                ngModelCtrl.$viewChangeListeners.push(function () {
                    $parse(attrs.viewValueModel).assign(scope, ngModelCtrl.$viewValue);
                });
            }
        };
    }
]);
<input
    class="form-control"
    type="text"
    datepicker-popup="{{format}}"

    ng-model="someFakeModelPlaceholder"
    view-value-model="createdfrom.createddate"

    is-open="opened1"
    min-date="minDate"
    max-date="'2015-06-22'"
    datepicker-options="dateOptions"
    date-disabled="disabled(date, mode)"
    ng-required="true"
    close-text="Close"
    placeholder="DD/MM/YY"
    id="date1"> 
(function () {
'use strict';
angular.module('app').filter("dateRangeFilter", ['$filter', function ($filter) {
    return function (items, from, to) {
        var df = from;
        var dt = to;
        var result = [];
        for (var i = 0; i < items.length; i++) {
            var date_bet = parseDate(items[i].StartDate);
            if (date_bet >= df && dt >= date_bet) {
                result.push(items[i]);
            }
        }
        return result;
    };
}]);