Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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 检查ng重复是否在筛选后生成空集_Javascript_Angularjs_Angularjs Ng Repeat - Fatal编程技术网

Javascript 检查ng重复是否在筛选后生成空集

Javascript 检查ng重复是否在筛选后生成空集,javascript,angularjs,angularjs-ng-repeat,Javascript,Angularjs,Angularjs Ng Repeat,我正在尝试这样做: ng重复一份大约50项的清单 根据文本字段对其进行过滤(ng repeat=“notes in notes | Filter:basicFilter”) 如果基本过滤器没有结果(或者可能有5个结果),则执行$http调用对数据库进行深度搜索 有没有一种方法可以检查在“基本”过滤器之后过滤器产生的结果,这样我就可以对服务器执行$http回调?是否有一个内置于角度的“过滤器”,我可以调用它 我试着观察变量: $scope.$watch('filtered_notes',

我正在尝试这样做:

  • ng重复一份大约50项的清单
  • 根据文本字段对其进行过滤(
    ng repeat=“notes in notes | Filter:basicFilter”
  • 如果基本过滤器没有结果(或者可能有5个结果),则执行$http调用对数据库进行深度搜索
有没有一种方法可以检查在“基本”过滤器之后过滤器产生的结果,这样我就可以对服务器执行$http回调?是否有一个内置于角度的“过滤器”,我可以调用它

我试着观察变量:

  $scope.$watch('filtered_notes', function() {
    // can't do this
  });
其中
ng repeat=“已过滤注释中的注释=(注释|订购人:['-注释_时间']|过滤器:注释过滤器|限制:限制)”


但是,它抛出了一个错误:
Uncaught error:[$rootScope:infdig]10$digest()迭代已达到。流产

您可以创建自定义过滤器,如以下示例所示

HTML

<div ng-repeat="note in filtered_notes |  myCustomFilter:theInput">

您可以编写自定义筛选器的可能副本
app.filter(“myCustomFilter”,…)
@MikeCheel我不想显示长度,我希望在完成筛选后调用一个回调,堆栈帖子应该会给您足够的时间继续,尽管我不确定是否可以。我试着观察在过滤器之后创建的变量,但是它抛出了一个异常。
 iApp.filter('myCustomFilter', function() {
   return function( notes, input) {
    var filtered = [];

    angular.forEach(notes, function(item) {
       if(/* do any condition with 'input' */) {
          filtered.push(item);
        }

    });

    if(filtered.length >= 5 ){
         /* do HTTP call or use $broadcast to trigger HTTP call*/
    }

    return filtered;
  };