在ng-hide / ng-show中可能有复杂的expression式吗?
我想这样做:
ng-hide="!globals.isAdmin && mapping.is_default"
但expression式的评估总是false
。
我不想在$scope
上定义特殊的函数。
如果需要运行任意JavaScript代码,可以使用控制器方法,也可以定义一个返回true或false的filter。
我刚刚testing过(应该先做),像ng-show="!a && b"
按预期工作。
ng-show
/ ng-hide
只接受boolean
值。
对于复杂的expression式,使用控制器和范围来避免复杂性是很好的。
下面的一个工作(这不是很复杂的expression)
ng-show="User=='admin' || User=='teacher'"
当这两个条件中的任何一个返回真(OR操作)时,这个元素将在UI中显示。
像这样你可以使用任何expression式。
这将工作,如果你没有太多的expression式。
例如: ng-show="form.type === 'Limited Company' || form.type === 'Limited Partnership'"
对于比这更多的expression式使用控制器。
我通常尽量避免使用ng-show和ng-hideexpression式,因为它们被devise为布尔值,而不是条件。 如果我同时需要条件逻辑和布尔逻辑,我宁愿使用ng-if作为第一个检查来添加条件逻辑,然后用ng-show和ng-hide添加对布尔逻辑的额外检查
Howerver,如果你想使用ng-show或ng-hide的条件,下面是一些例子的链接: 使用ng-if,ng-show,ng-hide,ng-include,ng-switch的条件显示
其中一些上述答案不适合我,但是这样做。 以防万一别人有同样的问题。
ng-show="column != 'vendorid' && column !='billingMonth'"