Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.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
使用datetimepicker Javascript筛选后未更新列表_Javascript_Jquery_Angularjs_Date_Filtering - Fatal编程技术网

使用datetimepicker Javascript筛选后未更新列表

使用datetimepicker Javascript筛选后未更新列表,javascript,jquery,angularjs,date,filtering,Javascript,Jquery,Angularjs,Date,Filtering,我试图为我的ng repeat创建一个自定义过滤器,但是当我使用datetimepicker.js时,它不会根据条件更新列表。我对Javascript相当陌生,所以任何指针/编码实践都会很有帮助 /*模块文件*/ /*控制器文件*/ /*HTML端*/ .... 我希望筛选器动态更新列表。使用: 从文档中: AngularJS通过提供自己的事件处理循环来修改正常的JavaScript流。这将JavaScript分为经典和AngularJS执行上下文。只有在AngularJS执行上下文中应用的

我试图为我的ng repeat创建一个自定义过滤器,但是当我使用datetimepicker.js时,它不会根据条件更新列表。我对Javascript相当陌生,所以任何指针/编码实践都会很有帮助

/*模块文件*/ /*控制器文件*/ /*HTML端*/

....
我希望筛选器动态更新列表。

使用:

从文档中:

AngularJS通过提供自己的事件处理循环来修改正常的JavaScript流。这将JavaScript分为经典和AngularJS执行上下文。只有在AngularJS执行上下文中应用的操作才会受益于AngularJS数据绑定、异常处理、属性监视等

您还可以使用从JavaScript输入AngularJS执行上下文。请记住,在大多数地方(控制器、服务)
$apply
已由处理事件的指令为您调用。只有在实现自定义事件回调时,或者在使用第三方库回调时,才需要显式调用
$apply

-


非常感谢你!现在可以了。此外,我还发现了另一个问题,即月份索引从0开始。
.filter('adminSummaryDataFilter', function () {
    return function (list, selectedStart){
        var output = [];

        var dStart =  new Date(selectedStart);

        angular.forEach(list, function (item) {
            var temp = item.WorkOrderStart.substring(0,item.WorkOrderStart.indexOf(' '));
            var temp2 = item.WorkOrderStart.substring(item.WorkOrderStart.indexOf(' ') + 1, item.WorkOrderStart.length);

            var tempArr = temp.split('-'); //[0] = year, [1] = month, [2] = day
            var temp2Arr = temp2.split(':'); //[0] = hour, [1] = minutes, [2] = seconds

            var newDate = new Date(tempArr[0], tempArr[1], tempArr[2], temp2Arr[0], temp2Arr[1], temp2Arr[2]);

            if (newDate >= dStart) {
                output.push(item);
            }
        });

        return output;
    }
});
$scope.selectedStart = 0;
$scope.btn_Calendar = function (id) {

$("#" + id).datetimepicker({
   inline: true,
   sideBySide: true
}).on("dp.change", function () {
    $scope.selectedStart = $("#dateTest").val();
});
<div class="fsTableDetail summary_tableDetail"
     ng-repeat="data in SummaryData | adminSummaryDataFilter:selectedStart"> 
  ....
</div>
$scope.selectedStart = 0;
$scope.btn_Calendar = function (id) {

$("#" + id).datetimepicker({
   inline: true,
   sideBySide: true
}).on("dp.change", function () {
    $scope.selectedStart = $("#dateTest").val();
    $scope.$apply();
});