我正在尝试设计一个构面服务,问题是每当我选择一个特定的构面时,都会获取一批新的构面 - 所以我需要保留旧的套件 - 在UI中显示,而另一个用于进行渐进对SOLR的查询。如果我使用ng-change和ng-checked-只要我只使用一种过滤器 - 比如price_facet,它就可以正常工作。当我点击折扣面并返回到价格过滤器以取消选中之前选中的选项时,ng-change不会调用该函数。
知道如何让它发挥作用吗?
$scope.checkExistenceFacetDict = function(param, value){
if(facetService.checkExitenceArray(param, value)>-1){
return true;
}
else{
return false;
}
}
在html中:
<div class="checkbox" ng-repeat="discount_slab in products.facet_details.discount_percentage">
<label>
<input type="checkbox" ng-change="syncDiscountCheckboxes(bool, discount_slab)" ng-model="bool" ng-checked="checkExistenceFacetDict('discount_bins', discount_slab.bin_id)">
<span class="cr"><i class="cr-icon fa fa-check"></i></span> {[{ discount_slab.name }]} ({[{ discount_slab.count }]}) </label>
</div>
和
<div class="checkbox" ng-repeat="price_slab in products.facet_details.price">
<label>
<input type="checkbox" ng-change="syncPriceFilter(bool, price_slab)" ng-model="bool" ng-checked="checkExistenceFacetDict('price_bins', price_slab.bin_id)">
<span class="cr"><i class="cr-icon fa fa-check"></i></span> {[{ price_slab.name }]} ({[{ price_slab.count }]}) </label>
</div>
FacetService:
this.checkExitenceArray = function(param, value){
var data = facet_dict[param];
return data.indexOf(value);
};
FacetDictionary:
var facet_dict = {
'brands' : [],
'price_bins' : [],
'discount_bins': [],
'availability': false,
'new_products': false,
'on_offer': false,
'sort_dropdown': 'relevance'
}