首页 > 解决方案 > 带过滤器的 ng-show 首先返回 true,然后是过滤器的结果

问题描述

我有一个 ng-show:

<a ng-show="vm.state.task | canFinish : vm.user">Test</a>

这会导致 a 元素在浏览器中呈现,然后如果过滤器返回 false,则隐藏该元素。

看起来第ng-show一个检查vm.state.task(结果为真)然后检查可能返回假的过滤器。

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

标签: angularjs

解决方案


很难说不知道你的“canFinish”函数,但是:虽然角度过滤器首先是同步函数,但它们可能会在值更改后被多次调用。所以可能在初次调用后结果会发生变化。


推荐阅读