Angularjs ng show with filter首先返回true,然后返回filter的结果

Angularjs ng show with filter首先返回true,然后返回filter的结果,angularjs,Angularjs,我有一个ng秀: <a ng-show="vm.state.task | canFinish : vm.user">Test</a> 测试 这将导致在浏览器中呈现元素,如果过滤器返回false,则元素将隐藏 看起来,ng show首先检查vm.state.task(结果为true),然后执行可能返回false的筛选器 但是这不是一个OR语句,为什么ng show首先检查vm.state.task?在不知道“canFinish”函数的情况下很难说,但是:尽管角度过滤器最

我有一个ng秀:

<a ng-show="vm.state.task | canFinish : vm.user">Test</a>
测试
这将导致在浏览器中呈现元素,如果过滤器返回false,则元素将隐藏

看起来,
ng show
首先检查
vm.state.task
(结果为true),然后执行可能返回false的筛选器


但是这不是一个OR语句,为什么
ng show
首先检查
vm.state.task

在不知道“canFinish”函数的情况下很难说,但是:尽管角度过滤器最初是同步函数,但它们在值更改后可能会被多次调用。因此,在第一次通话后,结果可能会发生变化。

最后,我犯了错误。语法和筛选器按预期工作,并且筛选器中存在问题。它首先返回一个true,但它一直循环,因此最终会返回一个false。

你错了,它的工作方式与你描述的不一样。为什么不在两者之间使用
&
运算符?@PetrAveryanov你是对的。问题出在过滤器上。不是语法。