angularjs – 使有角滤波器有条件
我目前正在使用文本输入过滤项目列表。我想让它这样当一个特定的变量设置,列表不进行过滤,无论是什么文本输入。任何建议,如何我可以完成这个?
<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}"> 编辑: 解释上面的工作原理。 >记住||和&&返回其操作数之一的值。 所以, 当disableFilter === true,!disableFilter === false,因此第二个操作数|| – 空字符串” – 被评估(它是falsy),和(!disableFilter ||”)返回” – 一个假值,短路&&操作,并且不评估&& amp的第二操作数。因此,表达式的返回值是“”。 当disableFilter === false,!disableFilter === true,这会短路||操作,则第&&被评估和返回。因此,表达式的返回值是{value:search}。 阅读更多关于logical operators here (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |