我想这样做:
ng-hide="!globals.isAdmin && mapping.is_default"
但表达式总是评估为false
。
我不想在$scope
上定义特殊功能。
答案 0 :(得分:209)
如果您需要运行任意JavaScript代码,请使用控制器方法,或者您可以定义返回true或false的过滤器。
我刚刚测试过(应该先做过),像ng-show="!a && b"
这样的东西按预期工作。
答案 1 :(得分:118)
ng-show
/ ng-hide
仅接受boolean
个值。
对于复杂的表达式,最好使用控制器和范围来避免并发症。
下面一个会工作(这不是很复杂的表达)
ng-show="User=='admin' || User=='teacher'"
当两个条件中的任何一个返回true(OR运算)时,此元素将显示在UI中。
像这样你可以使用任何表达。
答案 2 :(得分:12)
如果没有太多表达式,这将有效。
示例:ng-show="form.type === 'Limited Company' || form.type === 'Limited Partnership'"
对于除此之外的任何表达,请使用控制器。
答案 3 :(得分:6)
我通常会尝试避免使用ng-show和ng-hide表达式,因为它们被设计为布尔值,而不是条件。如果我需要条件和布尔逻辑,我更喜欢使用ng-if作为第一个检查放入条件逻辑,然后使用ng-show和ng-hide添加对布尔逻辑的附加检查
然而,如果你想使用ng-show或ng-hide的条件,这里有一些例子的链接:Conditional Display using ng-if, ng-show, ng-hide, ng-include, ng-switch
答案 4 :(得分:2)
上述一些答案对我没有用,但确实如此。以防其他人有同样的问题。
ng-show="column != 'vendorid' && column !='billingMonth'"