2016-08-27 1 views
3

私はAngularJSを学んでおり、 "li"というタグが "{marked:nav.estoy( '/')}"の値を持つngClassディレクティブに関連付けられていることがわかります。 私の質問は、角括弧内の値がx:yの形式になっている理由です。私は「nav.estoy( 『/』)コントローラメソッドで定義されているが、この方法の応答がある理由を理解していないと、」その:」AngularJS:ngClassのフォーマット

<body ng-app="app"> 
<nav ng-controller="navCtrl as nav"> 
    <ul> 
     <li ng-class="{marcado: nav.estoy('/')}"> 
      <a href="#/">Datos personales</a> 
     </li> 
    </ul> 
</nav> 

...

答えて

3

NG -classは引数としてオブジェクトを取ることができます:angularjs doc

オブジェクトのキーは、適用するクラス名であり、オブジェクトの値はtrueまたはfalseを評価する式です。この場合、クラスnav.estoy('/')がtrueを返す場合はmarcadoが適用されますが、値がtruey(非ゼロ、非ヌル)を評価する場合、いくつかのクラスが適用されるいくつかのキーが適用されます。

幸運!

+0

お返事ありがとうございます。私はあなたの答えと角度のある文書でngClass指令を理解することができます。 –

1

例では、nav.estoy('/)が真理値を返した場合、クラス「marcado」がclass属性に追加されます。ドキュメントから

発現は、対応するキーがクラス名として使用されtruthy値を持つオブジェクトの各キーと値のペアのために、オブジェクトに評価された場合。 xの

https://docs.angularjs.org/api/ng/directive/ngClass

+1

ありがとう@Mike Moore –

+0

@DiegoAaron Please upote :-) –

2

:yの形式で、xは、クラス名及びyは式です。私は彼らが複数のクラスはカンマを使用して簡単に設定できるように、この名前の値のペアの技術を使用すると信じています。式はブール値を返す必要があります。

<li ng-class="{marcado: nav.estoy('/'), 'another-class': expression}"> 
     <a href="#/">Datos personales</a> 
    </li> 
+0

ありがとう@depiction –