Angular2的事件绑定和属性绑定的写法已从短横线命名法(dash-case/kebab-case)改为驼峰命名法(camelCase)

一個月前的重大改變,所以感覺有點落後。儘管如此,在Angular.io的Dart版本文檔中還沒有反映出來,所以先做個筆記。當Dart版本按照TypeScript版本進行改訂時,這也應該會被反映其中。
https://angular.io/docs/ts/latest/guide/displaying-data.html
https://angular.io/docs/dart/latest/guide/displaying-data.html

通过这个改变,例如Angular的核心指令ngIf,ngFor等的选择器已从ng-if改为ngIf,ng-for改为ngFor。

以下是詳細內容:
https://github.com/angular/angular/blob/master/modules/angular2/docs/migration/kebab-case.md

这个变更的原因是因为设计文档已经公开,概括地说,

根据绑定规则,将以dash-case方式写作的Event Binding(如(my-event)=”exp()”),转换为camelCase的事件名后,由于无法绑定dash-case事件名,因此决定停止进行dash-case到camelCase的转换。

为了解决Property binding绑定时的问题,Angular中的属性名称绑定是区分大小写的,并且不再进行dash-case到camelCase的转换,这是因为CSS选择器是不区分大小写的。

以下是詳細內容:
https://docs.google.com/document/d/1UMxTIUBTIUZNfOqwMhkLg0ANFSBtLIK9JsIu77EZaBA/edit?ts=564f7dd4

在使用 Polymer 编写组件时,我经常混淆了属性的短横线命名方式(dash-case)和属性的驼峰命名方式(camelCase),结果导致我不得不花费大量的调试时间。因此,我对这个变化非常欢迎。另外,如果我不小心使用驼峰命名方式去定义属性,而在模板编译器中使用短横线命名方式,它将正确地抛出错误,这让我非常高兴。

广告
将在 10 秒后关闭
bannerAds