在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'" 
  • hgignore:帮助忽略所有文件,但是某些文件
  • 使用ES6类作为Angular 1.x指令
  • 正则expression式净化(PHP)
  • ng-options与对象数据源
  • 在Angular控制器中使用下划线
  • 让PHP停止replace'。' $ _GET或$ _POST数组中的字符?
  • 当ng-repeat完成时调用一个函数
  • 在angularJS中,&vs @和=有什么区别?
  • 如何使用PropertiesConfiguration编写多行属性值?
  • 正则expression式仅匹配字母字符
  • AngularJS指令:链接和编译function是否一起工作?