0

我有一个ng-if,如果它评估为 TRUE,我希望它调用ng-show="someMethod()"

你会说最好的方法是什么?

我应该调用我的ng-ifthen 使用 anng-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()" 它将过滤页面上可用的下拉列表等。

4

2 回答 2

3

ng-if如果条件评估为假,则不呈现该元素

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

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

不过,通常最好不要将函数调用放在这样的条件中

于 2015-10-02T15:49:03.803 回答
0

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

如果您的元素或表达式未初始化,那么您应该使用 ng-if 来确保该元素仅在读取表达式后才存在。看看这个:使用 ng-if 初始化昂贵的元素,然后使用 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 在初始化之前不会发生。

于 2015-10-02T15:35:44.463 回答