什么是Angular 2中的(单击),如果不是指令?

时间:2017-02-03 21:13:52

标签: angular

在Angular 2的文档中写道:

  

为什么在我们编写简单的代码时创建一个处理单击的指令   像这样绑定?   <button (click)="onSave()">Save</button>

如果这不是指令,那么它是什么?他们称之为&#34;一个简单的绑定&#34;,这与指令有什么不同?我的意思是它仍然是Angular处理的特殊内容,那么他​​们为什么如此自豪,而不是{1}}而不是{1}},就像在Angular 1中一样?

2 个答案:

答案 0 :(得分:6)

我的理解是,括号 (event) 语法不是指令,而是binding syntax,它允许开发人员使用DOM事件而无需编写指令。然而,ng-click当然是指令。

使用这种新的绑定语法,无需编写指令来利用DOM事件。有{em>很多 DOM events,所以不必维护所有这些指令很好。还有一件值得骄傲的事,IMO。

我希望这可以帮助你。

答案 1 :(得分:0)

根据我的理解,关于绑定的规则是这样的,Angular(2)甚至不知道关于click的显式内容。运行时找不到名为“click”的任何其他内容(指令,组件),因此它只是添加了一个DOM click属性。因为它是(点击)而不是[点击],它将其添加为onclick,然后您的浏览器知道如何处理它。

首先它让我陷入了一个循环,因为来自AngularJS(1.x),我试图在API参考中找到他们别名的DOM(比如点击)。然后我意识到当我仔细阅读时,他们不需要使用自己的指令对DOM进行别名https://angular.io/docs/ts/latest/guide/template-syntax.html

或者我完全错过了这艘船,这不会让我感到惊讶。