如何包含“字符串包含"角度过滤器内的函数 [英] how to include a "string includes" function inside a angular filter

查看:25
本文介绍了如何包含“字符串包含"角度过滤器内的函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用复选框进行过滤,我的 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 和过滤代码以确保没有冲突.

工作plunker

 

<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.

working plunker

   <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屋!

查看全文
相关文章
前端开发最新文章
热门教程
热门工具
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆