180 我想这样做: ng-hide="!globals.isAdmin && mapping.is_default" 但表达式的计算结果始终为false。 我不想在上定义特殊功能$scope。 attributes angularjs expression — 保罗 source 1 该语法对我有用,我经常使用它。如果评估为false,则可能需要仔细检查这些值。“ globals”和/或“ mapping”对象可能是undefined — derrylwc 在答案下方阅读我的评论。 — 保罗 只是一个提示-如果您改用控制器方法,则实际上可以逐步完成调试器中的评估! — Dimitry K
212 如果需要运行任意JavaScript代码,请使用控制器方法,或者可以定义返回true或false的过滤器。 我刚刚进行了测试(应该首先进行了测试),并且像ng-show="!a && b"预期的那样工作。 — 马克·拉杰科克 source 4 你是对的。问题在于isAdmin标志的类型为“字符串”,而不是“布尔值”。 — 保罗
121 ng-show/ ng-hide仅接受boolean值。 对于复杂的表达式,最好使用控制器和范围来避免复杂化。 下面一个将起作用(这不是很复杂的表达) ng-show="User=='admin' || User=='teacher'" 当两个条件中的任何一个返回true(或操作)时,此处的元素将在UI中显示。 这样,您可以使用任何表达式。 — Myaseedk source
12 如果您没有太多的表达式,这将起作用。 例: ng-show="form.type === 'Limited Company' || form.type === 'Limited Partnership'" 对于除此以外的更多表达式,请使用控制器。 — lvadim01 source 1 我认为您的陈述是不正确的:This will work if you do not have too many expressions.尽管我同意应改为在控制器中执行。 — 拉胡尔·德赛
7 我通常尝试避免使用ng-show和ng-hide表达式,因为它们被设计为布尔值,而不是条件表达式。如果我同时需要条件逻辑和布尔逻辑,我更喜欢先使用ng-if作为条件检查,然后再使用ng-show和ng-hide为布尔逻辑添加附加检查 但是,如果要对ng-show或ng-hide使用条件显示,则以下示例链接:使用ng-if,ng-show,ng-hide,ng-include,ng-switch的条件显示 — 詹姆斯·德怀德 source
2 以上这些答案中有些对我不起作用,但对我有用。以防万一别人有同样的问题。 ng-show="column != 'vendorid' && column !='billingMonth'" — 追猎者 source
false
,则可能需要仔细检查这些值。“ globals”和/或“ mapping”对象可能是undefined