为什么 Angular 2 或 Angular 4 使用香蕉括号?有什么具体原因吗?为什么它们不遵循与 Angular 1 相同的模式?

VIK*_*HLI 5 javascript web angularjs typescript angular

我知道它与任何编码无关,但它们可以遵循与 Angular 1 中相同的语法

<input ng-model="hero.name" placeholder="name" type="text">
Run Code Online (Sandbox Code Playgroud)

AngulAR 2 及其大版本语法至今

 <input [(ngModel)]="hero.name" placeholder="name" type="text">
Run Code Online (Sandbox Code Playgroud)

如果他们这样做,这对人们适应 Angular JS 的变化会有很大帮助吗?

同样,对于ng-repeat,他们改为ngFor

<ul ngFor let-item [ngForOf]="items" let-i="index" [ngForTrackBy]="trackByFn">
  <li>...</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
<ul ng-repeat="item in items track by myTrackingFunction(n)">
<li>...</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

Jai*_*Jai 1

香蕉括号...这是角度中双向数据绑定[()]的标准方式。它是一个 getter 和 setter。setter 而getter,因此组合它们可以实现 .setter 的双向数据绑定。 []()ngModel

Setters[]可以引导您进行单向绑定


Angular (2,4+)是 Angular1 的完全重写,因为 Angular 采用了 TypeScript 作为它的基础语言,并且它是用 TypeScript 完全重写的。Typescript 拥有所有最新的 javascript 功能+类型。这可以让你确定逻辑中的数据流是什么类型。

但这并不能阻止用户使用 AngularJS,任何人都可以使用,因为它也在开发中,并且他们正在尝试找到将 AngularJS 迁移到 Angular 的简单方法。