我有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 =&#34; someMethod()&#34;这将过滤页面上可用的下拉菜单等。
答案 0 :(得分:3)
ng-if
不会呈现该元素
但是,您可以在一个表达式中使用多个条件:
ng-show="item.type == 'pizza' && someMethod()"
通常最好不要将函数调用放在这样的条件中
答案 1 :(得分:0)
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在初始化之前不会发生。