2017-02-03 55 views
1

在角2的文檔這是寫:什麼是(點擊)在Angular 2中,如果不是指令?

爲什麼要創建指令來處理點擊時,我們可以寫一個簡單的 結合像這樣? <button (click)="onSave()">Save</button>

如果這不是指令,那麼它是什麼?他們稱之爲「簡單的綁定」,這與指令有什麼不同?我的意思是它仍然是Angular特別處理的東西,所以爲什麼他們爲(click)而不是像Angular 1中的ng-click那樣自豪?

回答

6

這是我的理解是,括號(event)語法不是指令,而是一個binding syntax,允許開發人員使用DOM事件,而無需編寫一個指令。鑑於ng-click是一個指令,當然。

使用這種新的綁定語法,不需要編寫指令來利用DOM事件。有很多DOM events,所以不必爲所有人維護一個指令是很好的。值得驕傲的是,IMO。

我希望這可以幫助你。

0

從我的理解來看,關於綁定的規則是這樣的,Angular(2)甚至不知道關於點擊的明確內容。運行時無法找到名爲「click」的其他任何內容(指令,組件),因此它只是添加了DOM單擊屬性。因爲它是(單擊)而不是[單擊],它會將它添加爲onclick,然後瀏覽器知道如何處理它。

它首先給我一個循環,因爲來自AngularJS(1.x),我試圖在API參考中找到它們別名的東西(比如點擊)。然後我意識到,當我仔細閱讀時,他們不需要用他們自己的指令來別名DOM。https://angular.io/docs/ts/latest/guide/template-syntax.html

或者我完全錯過了船,這並不會讓我感到驚訝。