引入ng-checked时未调用ng-change

时间:2015-09-28 12:42:00

标签: javascript angularjs faceted-search

我正在尝试设计一个构面服务,问题是每当我选择一个特定的构面时,都会获取一批新的构面 - 所以我需要保留旧的套件 - 在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'
                 }

0 个答案:

没有答案