7

これに対する答えを探してみましたが、成功しませんでした。

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". これは可能ですか、どこが間違っていますか?

よろしくお願いします。

4

1 に答える 1

8

機能しない理由は、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
于 2013-09-13T13:43:02.247 に答える