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调用对数据库进行深度搜索
$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;
};