angular - 属性绑定(bind) [class.selected] 中的属性是什么?

标签 angular

我正在从 official hero tutorial 学习 Angular 2 .

<ul class="heroes">
      <li *ngFor="let hero of heroes"
        [class.selected]="hero === selectedHero"
        (click)="onSelect(hero)">
        <span class="badge">{{hero.id}}</span> {{hero.name}}
      </li>
</ul>

我已阅读有关属性绑定(bind)的指南 here , 但仍然无法理解以下代码:

[class.selected]="hero === selectedHero"

问题 1: 我知道 html 标签有一个类属性,但类属性没有一个名为“selected”的键。类属性可能有一个值,它是字符串“selected”。为什么这个属性绑定(bind)是有效的?

问题 2: 上述属性绑定(bind)如何转换为 class="selected"?

最佳答案

[class.xxx][style.xxx.yy] 是特殊的 Angular2 绑定(bind)语法,其中

[class.my-class]="expression"

根据 expression 是否导致 true 或从元素添加(或删除)CSS 类 my-class 错误

[style.width.px]="numExpression"

宽度(或任何其他有效的样式属性)设置为numExpression的值和单位px`(或任何其他有效的CSS 单位)

关于angular - 属性绑定(bind) [class.selected] 中的属性是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39737159/

相关文章:

javascript - _lodash debounce 不去抖动

angular - karma-jasmine-html-reporter@1.1.0 需要 jasmine@>=3 的对等体,但没有安装。

angular - Angular2 组件中的单元测试 RouterLink

rest - 使用 Angular2 ngrx 的类似 Twitter 的应用程序。构建 AppState

javascript - 将 *ngFor 与 JSON Angular2 一起使用

angular - 从 Angular 2 中的 jquery 调用 TypeScript 方法

javascript - 如何防止以 Angular2+ 的 react 形式重复调用 onChange 回调?

Angular 4 在共享服务中发出和订阅事件

Angular 2树仅显示根节点

node.js - 从 Node v8 更改为 v10 时,设置 process.env.tz 停止工作