AngularJS:ngClass的格式

时间:2016-08-27 02:46:04

标签: javascript angularjs ng-class

我正在学习AngularJS,我看到标签" li"与ngClass指令相关联,该指令具有" {marked:nav.estoy(' /')}"值。 我的问题是为什么括号内的值的格式为x:y。我就是" nav.estoy(' /')在控制器方法中定义但不明白为什么这种方法的反应是":"

<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 个答案:

答案 0 :(得分:3)

ng-class可以将对象作为参数:angularjs doc

对象的键是要应用的类名,对象的值是将评估truthy或falsey的表达式。在这种情况下,如果marcado返回true,则表示将应用类nav.estoy('/'),但如果值评估为真(非零,非零),则可以轻松地使用几个键来应用几个类。空)。

祝你好运!

答案 1 :(得分:2)

在x:y格式中,x是类名,y是表达式。我相信他们使用这种名称值对技术,因此可以使用逗号轻松设置多个类。表达式必须返回一个布尔值。

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

答案 2 :(得分:1)

在您的示例中,如果nav.estoy('/)返回真值,则“marcado”类将添加到class属性中。

来自文档:

  

如果表达式求值为一个对象,则对于具有truthy值的对象的每个键值对,相应的键将用作类名。

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