おそらく次のようなものも見たことがあるでしょう。
<div ng-class="{true: 'complete'}[item.Id != 0]"></div>
非常に優れた構文。
編集:
ここで何が起こるかというと、要素に "complete
"class
が追加されますif(item.Id != 0)
。または、次のように書くこともできます<div ng-class="{false: 'cookieless'}[monsterEatsCookies('Elmo')]
。MonsterEatsCookies 関数によって決定されるように、Elmo はクッキーを食べないため、この関数はfalse
html 要素を返すため、 というクラスが取得cookieless
ます。
簡単な例: <div ng-class="{false: 'DoubleNegative'}[1 == 0]
. 1 !== 0
これは " false
" -- " DoubleNegative
" クラスが要素に追加されます。
<div ng-class="{ true: 'complete' } [item.Id != 0]"></div>
`
| | | | | | | |
| |result| |className | | | |
| | | | |
| function | | | condition |
補遺
また、さまざまなキーを使用して自分の状態にマッピングできることに気付きました。例えば:
ng-class="{ true: 'highlight', undefined: 'mute' }[ item.hasValue ]"
item に " " プロパティがない場合、mute
クラスが適用されます。hasValue
さらに、任意の型または値にクラスを適用できます。
{'Jonathan Chapman': 'embolden', '[object Object]': 'hide'}[ item.toString() ]
次のコレクションでは、オブジェクトであるアイテムを非表示にしながら、人物の名前を太字にします。
[
'Jonathan Chapman',
{ aka: 'Johnny Applyseed' },
'Brad Pitt',
{ details: 'Fights Zombies' }
]
これにより、任意の $scope プロパティで特定の値を監視できます。これは、場合によっては非常に便利になると思います。
乾杯