ng-show with filter首先返回true,然后返回filter

时间:2018-07-31 12:52:44

标签: 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

2 个答案:

答案 0 :(得分:0)

在不知道您的“ canFinish”函数的情况下很难说,但是:尽管角滤波器最初是同步函数,但是在值更改后它们可能会多次调用。因此,也许在首次调用后结果发生了变化。

答案 1 :(得分:0)

最后,错误就在我这一边。语法和过滤器按预期工作,并且过滤器出现问题。它最初返回的是true,但一直循环运行,因此最终它将返回false。