在 ng-hide/ng-show 中可以使用复杂表达式吗?

我想这样做:

ng-hide="!globals.isAdmin && mapping.is_default"

但是表达式的计算结果总是 false

我不想在 $scope上定义特殊的函数。

279149 次浏览

如果需要运行任意的 JavaScript 代码,或者可以定义返回 true 或 false 的过滤器,则使用控制器方法。

我只是测试了一下(应该先做这个) ,像 ng-show="!a && b"这样的东西就像预期的那样工作了。

ng-show/ng-hide只接受 boolean值。

对于复杂的表达式,最好使用控制器和作用域来避免复杂性。

下面一个将工作(它不是很复杂的表达式)

ng-show="User=='admin' || User=='teacher'"

当两个条件中的任何一个返回 true (OR 操作)时,这里的元素将在 UI 中显示。

像这样,你可以用任何表达方式。

这将工作,如果你没有太多的表达式。

例子: ng-show="form.type === 'Limited Company' || form.type === 'Limited Partnership'"

对于任何超过此值的表达式,请使用控制器。

我通常尽量避免使用 ng-show 和 ng-hide 表达式,因为它们被设计为布尔型,而不是条件型。如果同时需要条件逻辑和布尔逻辑,我倾向于使用 ng-If 作为第一个检查,然后使用 ng-show 和 ng-hide 为布尔逻辑添加额外的检查

但是,如果您想对 ng-show 或 ng-hide 使用条件,这里有一个链接,其中包含一些示例: 条件显示使用 n- 如果,n- 显示,n- 隐藏,n- 包含,n- 开关

以上的一些答案对我来说不起作用,但是这个答案起作用了。以防其他人也有同样的问题。

ng-show="column != 'vendorid' && column !='billingMonth'"