角度 ng-repeat 过滤器,大于 [英] Angular ng-repeat filter with greater than
问题描述
我正在使用 angular 创建一个搜索属性表单,并且我有一个包含卧室数量的选择框,如何创建一个大于过滤器的过滤器?(例如:选择2房时,显示所有2房及以上房源)
I'm using angular to create a search property form, and I've got a select box with amount of bedrooms, how can I create a greater then filter? (for example: when 2 bedrooms selected, display all properties with 2 bedrooms or more)
选择框:
<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
推荐答案
http://jsfiddle.net/odpw6c6q/43/
在 ng-options
中使用 ng-options="property.data.Bedrooms as
而不是 ng-options="property.data.SubType as代码>因为
data.Bedrooms
是包含卧室数量的属性,应该存储在 ng-model
In ng-options
use ng-options="property.data.Bedrooms as
instead of ng-options="property.data.SubType as
because data.Bedrooms
is the property that contains number of bedrooms which should be stored in ng-model
在作用域内添加这个函数
In scope add this function
//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}
In ng-repeat
use filter: greaterThan(Bedrooms)
instead of filter:{Bedrooms:Bedrooms}
这篇关于角度 ng-repeat 过滤器,大于的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!