0
我有一个指令,它使用延迟加载一次加载10条记录,并在用户滚动时添加。这部分工作正常。问题是我无法弄清楚如何使用文本框来过滤整个集合上的记录。由于延迟加载,列表框中只有10条记录。我在另一个不在指令中的列表框上做了同样的事情,它工作得很好,但我无法让它在指令中工作。使用延迟加载过滤指令中的数据
这里是指令的模板:
<div class="pec-checkbox-picklist btn-group btn-group-picklist">
<button id="{{itemId}}" class="form-control dropdown-toggle" data-toggle="dropdown">
<span class="cbpl-btn-text">{{ getSelectedCount() }} {{ title }}</span><span class="caret"></span>
</button>
<ul class="dropdown-menu dropdown-menu-complex" data-complex-menu style="overflow-y: scroll" lazy-load load-more="loadMore()">
<li class="list-group-item search-item">
<input class="form-control" type="text" placeholder="{{ searchPlaceholder }}" ng-model="query" />
<button type="button" class="btn btn-small" ng-show="query" ng-click="query = undefined">clear</button>
</li>
<li class="divider" ng-hide="query"></li>
<li class="list-group-item" ng-hide="query">
<label class="checkbox">
<input type="checkbox" ng-click="allSelected(list)" ng-checked="allNeedsMet(list)">
Select All
</label>
</li>
<li class="divider"></li>
<li class="list-group-item" ng-repeat="item in list | searchFilter:nameProp:query">
<label class="checkbox" title="{{ item[nameProp] }}">
<input type="checkbox" ng-model="item.selected" ng-change="callbackFn({object: item})">
{{ item[nameProp] }}
</label>
</li>
</ul>
这里是该指令searchfilter:
angular.module('ssq.shared')
.filter('searchFilter', function() {
return function (items, propName, query) {
if (!query) return items;
return _.filter(items, function (item) {
return item[propName].toUpperCase().indexOf(query.toUpperCase()) !== -1;
});
};
});
我在范围内的变量整个缓存的记录在主控制器,但我无法弄清楚如何使用它们来搜索指令。
任何援助非常感谢!