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;
});
};
});
我在範圍內的變量整個緩存的記錄在主控制器,但我無法弄清楚如何使用它們來搜索指令。
任何援助非常感謝!