Angular 2 的语法更改 - 任何原因?

Angular 2's Syntax Changes - Any Reason?

我正在查看 Angular 2 here 中出现的一些语法。我很好奇,一些变化的原因是什么?

具体来说:<input ng-model="mymodel.name' /><input [(ng-model)]="mymodel.name" />

或者这个:<div ng-class="{ 'padding': mymodel.name.length != 0}"><div [ngStyle]="{ 'padding': mymodel.name.length != 0}">

或者这样:<button ng-click="mymodel.foo()"><button (click)="mymodel.foo()">

我见过的最好的资源是 Miško Hevery 的 ng-conf 2015 演讲:https://www.youtube.com/watch?v=-dMBcqwvYA0

演讲幻灯片:https://docs.google.com/presentation/d/1XoizA8Dm_S3SU1jYPERmgWVIbqjGOXolpF3Jm2b8xKA

Miško 是 Angular 的创造者。

简而言之(非常简短,您真的应该观看此视频以全面了解 Angular 2 个概念,尤其是如果您有 Angular 1 个背景):

  • 较新的语法不那么模糊,因此编辑者现在可以执行静态语法检查
  • DOM 属性 绑定在很多方面优于 HTML 属性绑定(括号表示 属性 绑定)
  • 事件绑定现在使用括号,而不是为每种类型的事件要求特殊的 ng-* 指令