加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 使有角滤波器有条件

发布时间:2020-12-17 08:54:11 所属栏目:安全 来源:网络整理
导读:我目前正在使用文本输入过滤项目列表。我想让它这样当一个特定的变量设置,列表不进行过滤,无论是什么文本输入。任何建议,如何我可以完成这个? a ng-repeat="set in data | filter: { value: search }" data-id="{{set.id}}" ng-mousedown="setBox(set)"
我目前正在使用文本输入过滤项目列表。我想让它这样当一个特定的变量设置,列表不进行过滤,无论是什么文本输入。任何建议,如何我可以完成这个?
<a ng-repeat="set in data | filter: { value: search }" data-id="{{set.id}}" ng-mousedown="setBox(set)" ng-mouSEOver="setSelected(set,$event)" ng-bind-html="set.value | trustHTML"></a>
如果将过滤器表达式设置为“(或未定义)”,则可以实现此操作 – 这将导致不应用过滤器(对于disableFilter设置),否则设置为实际的过滤器表达式。

所以,假设,这个切换变量 – disableFilter – 是一个布尔:

<a ng-repeat="set in data | filter: (!disableFilter || '') && filterExpression">

(filterExpression是你想要过滤的表达式)。您的具体情况是:

<a ng-repeat="set in data | filter: (!disableFilter || '') && {value: search}">

编辑:

解释上面的工作原理。

>记住||和&&返回其操作数之一的值。
> ||和&&使用短路评估 – 真|| (anything)返回true;假& (anything)返回false – 不评估(任何)表达式。
>”是falsy(或者使用undefined,如果它更清晰)

所以,

当disableFilter === true,!disableFilter === false,因此第二个操作数|| – 空字符串” – 被评估(它是falsy),和(!disableFilter ||”)返回” – 一个假值,短路&&操作,并且不评估&& amp的第二操作数。因此,表达式的返回值是“”。

当disableFilter === false,!disableFilter === true,这会短路||操作,则第&&被评估和返回。因此,表达式的返回值是{value:search}。

阅读更多关于logical operators here

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读