ng-如果调用 ng-show?

ng-if calling an ng-show?

我有一个 ng-if,如果它的计算结果为 TRUE,我希望它调用一个 ng-show="someMethod()"

您认为最好的方法是什么?

我应该调用我的 ng-if 然后使用 ng-init="someMethod()" 然后在 someMethod() 中以某种方式应用 ng-show 的模拟吗?

HTML:

<div ng-repeat="(key,item) in foodOptions" ng-class={hidden : item.type != currentSection.type}" >

然后我想调用 ng-if 来调用特定条件,例如 ng-if="item.type === 'pizza'" - 然后应该调用 ng-show="someMethod()" ,它将过滤页面上的可用下拉列表等。

ng-show 已经计算了一个表达式 - 只需将您的表达式放入 ng-show ="myexpression || myfunction()".

如果您的元素或表达式未初始化,那么您应该使用 ng-if 来确保该元素仅在读取表达式后才存在。看看这个:Initialize expensive element with ng-if then show/hide with ng-show/hide.

<button ng-click='showElement = !showElement; elementInitialized = true'></button> <div id='myExpensiveElement' ng-if='elementInitialized' ng-show='showElement'> ... </div>

如您所见 - ng-show 可以直接跟在 ng-if 之后,如果为 false,则 ng-show 在初始化之前不会发生。

ng-if 如果条件评估为 false

则不呈现该元素

但是您可以在一个表达式中使用多个条件:

ng-show="item.type == 'pizza' && someMethod()"

不过通常最好不要将函数调用放在此类条件中