angularjs-ng-click - ng-class 不计算表达式

标签 angularjs-ng-click

我正在尝试在我的 angularJs 应用程序中实现 ng-class,但由于某种原因,ng-class 中的表达式没有得到应用,有什么想法吗?

<span>{{prod.item.count}}</span>

<div ng-class="{'show-error-box' : prod.item.length< 1}" class="hide-error-box">

prod 是我在 View 中的 Controller 别名,item 是我 Controller 中的范围对象

当项目数小于 1 时,我想要类“show-error-box”,否则应用类 hide-error-box。由于我没有任何测试数据来测试长度为 0 的值,因此我将表达式替换为 ng-class="{'show-error-box' : 0< 1}"在这种情况下 show-error-box 应该得到应用,但它没有发生。

  • CSS:

    .隐藏错误框{ 显示:无; }

    .show-error-box { 向左飘浮; 宽度:100%; 背景:#fff; 文本对齐:居中; 填充:10% 0; 高度:700 像素; position:absolute; }

最佳答案

ng-class 不能替代“class”。如果关联值为 true,它将添加名称为对象中键的任何类。

该 div 仅有的两个选项是:

class="hide-error-box"

class="hide-error-box show-error-box"

为了达到所需的效果,您可以将相反的条件作为隐藏类的值。

ng-class="{hide-error-box: prod.item.length >= 1, show-error-box: prod.item.length < 1}"

但是,通常建议您使模板尽可能远离逻辑。可能值得考虑将其放入 Controller 函数中:

HTML

<div class="{{getSizeClass()}}">

JS

this.getSizeClass = function() { if (item.length >= 1) { return 'hide-error-box' } return 'show-error-box' }

关于angularjs-ng-click - ng-class 不计算表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28181410/

相关文章:

javascript - ngclass应用于页面加载,表达式不真实

javascript - 更改图标以在angularjs中展开折叠

javascript - 使用 AngularJS 的数据表中的单元格按钮

javascript - AngularJS ng-显示具有多个元素的一个条件

javascript - Angular : ng-click not working

javascript - ng-click 不起作用,试图在点击时替换图像

javascript - 如何修复这个 ng-class 切换比较?

android - Cordova,条码扫描器在 Android 中打开两次

angularjs - 通过 ng 单击多个元素来切换类

javascript - 如果 DOM 元素被删除并重新添加,ng-click 绑定(bind)就会丢失