对象属性值为类名,ng-class

时间:2013-09-13 13:38:05

标签: javascript angularjs ng-class

尝试寻找答案但没有成功。

在angularJS中使用ng-class时,有没有将属性的值作为类名?

我的意思的一个例子:

var things = [
        {
            a: "abc",
            aTrue: true
        }
];

然后在Angular中(在这个例子中使用ng-repeat)

<div ng-repeat="thing in things" ng-class="{thing.a: !!thing.aTrue}></div>

我正在寻找班级名称为"abc" - 但这会给我一个班级名称"thing.a"。这是否可能,我哪里出错?

提前致谢,感谢您的帮助。

1 个答案:

答案 0 :(得分:7)

不起作用的原因是因为它的行为就像一个Javascript对象所以你不能在javascript中执行此操作

var test = 'hello';

var object = {
    test: 'hi'
};

object[test] === undefined // true // or
object.hello === undefined // true 
object.test  === undefined // false 

因此,您无法使用类似的变量创建key。所以尝试这样的事情。

 ng-class="{ true: thing.a, false: '' }[thing.aTrue]"

演示:http://jsfiddle.net/XzXzR/1/

这是做什么的(javascript中的解释)

var test = {
   one: 'hello',
   two: 'world'
}['one'];

测试什么相等?

test ===  Object {one: "hello", two: "world"} // false
test ===  Object {one: "hello"} // false
test ===  Object {two: "world"} // false
test === 'one'   // false
test === 'two'   // false
test === 'hello' // ** true **
test === 'world' // false