如何包含“字符串包含"角度过滤器内的函数 [英] how to include a "string includes" function inside a angular filter
问题描述
我正在使用复选框进行过滤,我的 geojson 有一个状态属性.状态是值看起来像这样:
<块引用>状态:第 3Q99 号法案"
或
<块引用>状态:未来 3Q99"
我需要按Act"或Fut"过滤.这是我的过滤器:
function StatusFilter() {返回函数(领土细分,类型过滤器){var 过滤 = [];angular.forEach(领土细分,功能(细分){if (typeFilter.active == true && typeFilter.future == true) {过滤.推(细分);}else if (typeFilter.active == true && typeFilter.future == false && subdivision.properties.status == subdivision.properties.status.indexOf('Act') != -1) {过滤.推(细分);}else if (typeFilter.future == true && typeFilter.active == false && subdivision.properties.status == subdivision.properties.status.indexOf('Fut') != -1) {过滤.推(细分);}});返回过滤;};};
这是我尝试过的.
<块引用>subdivision.properties.status.indexOf('Act') != -1
它当然行不通.我创建了一个工作plunker.我包含了其他 orderBy 和过滤代码以确保没有冲突.
<div class="checkbox checkbox-success checkbox-inline"><input type="checkbox" id="active-checkbox-filter" ng-model="vm.typeFilter.active" ng-change="vm.statusActive('active')"><label for="active-checkbox-filter">活动 </label>
<div class="col-xs-3"><div class="checkbox checkbox-success checkbox-inline"><input type="checkbox" id="future-checkbox-filter" ng-model="vm.typeFilter.future" ng-change="vm.statusFuture('future')"><label for="future-checkbox-filter">未来</label>
你的代码看起来很奇怪.难道你只需要这个:
if (typeFilter.active === true && typeFilter.future === true) {过滤.推(细分);} else if (typeFilter.active === true && typeFilter.future === false && subdivision.properties.status.indexOf('Act') >= 0) {过滤.推(细分);} else if (typeFilter.future === true && typeFilter.active === false && subdivision.properties.status.indexOf('Fut') >= 0) {过滤.推(细分);}
?
I am working on filtering with checkboxes, My geojson has a property of status. the status is value looks like this:
status : "Act 3Q99"
or
status : "Fut 3Q99"
I need to filter by "Act" or "Fut". here is my filter:
function StatusFilter() {
return function (territorySubdivisions, typeFilter) {
var filtered = [];
angular.forEach(territorySubdivisions, function (subdivision) {
if (typeFilter.active == true && typeFilter.future == true) {
filtered.push(subdivision);
}
else if (typeFilter.active == true && typeFilter.future == false && subdivision.properties.status == subdivision.properties.status.indexOf('Act') != -1) {
filtered.push(subdivision);
}
else if (typeFilter.future == true && typeFilter.active == false && subdivision.properties.status == subdivision.properties.status.indexOf('Fut') != -1) {
filtered.push(subdivision);
}
});
return filtered;
};
};
here is what I tried.
subdivision.properties.status.indexOf('Act') != -1
It of course is not working. I created a working plunker. I included other orderBy and filtering code to make sure there were no conflicts.
<div class="col-xs-3">
<div class="checkbox checkbox-success checkbox-inline">
<input type="checkbox" id="active-checkbox-filter" ng-model="vm.typeFilter.active" ng-change="vm.statusActive('active')">
<label for="active-checkbox-filter"> Active </label>
</div>
</div>
<div class="col-xs-3">
<div class="checkbox checkbox-success checkbox-inline">
<input type="checkbox" id="future-checkbox-filter" ng-model="vm.typeFilter.future" ng-change="vm.statusFuture('future')">
<label for="future-checkbox-filter"> Future </label>
</div>
</div>
Your code looks strange. Don't you just need this:
if (typeFilter.active === true && typeFilter.future === true) {
filtered.push(subdivision);
} else if (typeFilter.active === true && typeFilter.future === false && subdivision.properties.status.indexOf('Act') >= 0) {
filtered.push(subdivision);
} else if (typeFilter.future === true && typeFilter.active === false && subdivision.properties.status.indexOf('Fut') >= 0) {
filtered.push(subdivision);
}
?
这篇关于如何包含“字符串包含"角度过滤器内的函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!