【问题标题】:Angular ng-repeat filter with greater than角度 ng-repeat 过滤器大于
【发布时间】:2015-05-26 07:47:22
【问题描述】:

我正在使用 Angular 创建一个搜索属性表单,并且我有一个包含卧室数量的选择框,我如何创建一个更大的过滤器? (例如:选择 2 间卧室时,显示所有 2 间或以上的属性)

选择框:

<select class="form-control" 
        name="bedrooms" 
        ng-model="Bedrooms" 
        ng-options="property.data.SubType as (property.data.Bedrooms + ' Bedrooms ('+ property.count +')') for property in properties  | unique:'Bedrooms' | orderBy:'data.Bedrooms'">
        <option value="">Minimum Bedrooms</option>
</select>  

还有过滤器:

<tr ng-repeat="property in filtered = (properties | filterMultiple:{Address: Address, SubArea:SubArea, SubType:SubType} | filter:{Bedrooms:Bedrooms})|  orderBy:Address">  

这是我的JSFiddle

【问题讨论】:

标签: angularjs select filter ng-repeat minimum


【解决方案1】:

http://jsfiddle.net/odpw6c6q/43/

在ng-options 中使用ng-options="property.data.Bedrooms as 而不是ng-options="property.data.SubType as 因为data.Bedrooms 是包含卧室数量的属性,应该存储在ng-model 中

在范围内添加此功能

//Filter Function
    $scope.greaterThan = function(bedrooms) {
        return function(item) {                          
            if ( item['Bedrooms'] > bedrooms) {                
                return true;
            } else {                
                return false;
            }
        }
    };

在ng-repeat 中使用filter: greaterThan(Bedrooms) 而不是filter:{Bedrooms:Bedrooms}

【讨论】:

  • 感谢您的帮助!你知道我可以如何改进过滤器以更好地工作吗? at the moment, when some areas are selected, and then select a type, the rest of the options don't work anymore.这是我更新的JSFiddle
  • 看起来不错。究竟是什么不工作?如果有帮助,您可以投票并接受我的回答:)
猜你喜欢
  • 1970-01-01
  • 2013-08-24
  • 2015-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-16
  • 2017-02-21
相关资源
最近更新 更多