在三元运算符中定义任何条件

时间:2015-01-27 10:14:24

标签: angularjs

我想改变我单元格的颜色,所以在我的表格中,我在我的td上做了这个。

data-ng-class="{selected.id == price.id && !price.isMinPrice ? 'selected' : '', selected.id == price.id && price.isMinPrice ? 'minSelected' : ''}"

我有这个错误:

  

错误:[$ parse:syntax]语法错误:令牌'。'出人意料,   期待[:]在表达式[{selected.id == price.id   &安培;&安培; !price.isMinPrice? '选择' :'',selected.id == price.id&&   price.isMinPrice? ' minSelected' :''}]从[.id == price.id开始   &安培;&安培; !price.isMinPrice? '选择' :'',selected.id == price.id&&   price.isMinPrice? ' minSelected' :''}]。

有什么问题??

2 个答案:

答案 0 :(得分:2)

您正在使用ng-class所有错误,这就是您遇到语法错误的原因。

你需要给它一个对象文字:

data-ng-class="{selected: selected.id == price.id && !price.isMinPrice,
                minSelected: selected.id == price.id && price.isMinPrice}"

这比你想做的要干净得多。

答案 1 :(得分:1)

我认为ng-class需要这样的结构:{'class-name':booleanValue},如果value为true,则将应用class。

所以在你的情况下:

data-ng-class="{'selected' : selected.id == price.id && !price.isMinPrice, 'minSelected' : selected.id == price.id && price.isMinPrice}"

如果您想使用ternaty运算符,则可以将class属性与{{}}一起使用:

class="{{selected.id == price.id && !price.isMinPrice ? 'selected' : ''}}"