2017-02-03 4 views
1

В Документах угловой 2 написано:Что такое (щелкните) в Angular 2, если нет директивы?

Почему создать директиву для обработки щелчка, когда мы можем написать простой связывание, такой как это? <button (click)="onSave()">Save</button>

Если это не директива, что это такое? Они называют это «простой привязкой», как это отличается от директивы? Я имею в виду, что это все еще что-то особенное, обработанное Angular, так почему они так гордятся, что это (click) вместо ng-click как в Angular 1?

ответ

6

Это мое понимание того, что круглые скобки (event) синтаксис не директива, а binding syntax, что позволяет разработчику использовать событие DOM без необходимости писать директиву. В то время как, конечно, ng-click.

С этим новым синтаксисом связывания нет необходимости кодировать директиву, чтобы воспользоваться событиями DOM. Есть многоDOM events, поэтому не нужно поддерживать директиву для всех из них. И чем гордиться, ИМО.

Я надеюсь, что это поможет вам.

0

С моей точки зрения, правила вокруг привязки таковы, что Angular (2) даже не знает ничего о явном о щелчке. Среда выполнения не может найти ничего (директива, компонент) с именем «click», поэтому она просто добавляет свойство DOM click. Потому что это (щелкните), а не [щелкните], он добавляет его как onclick, а затем ваш браузер знает, что с ним делать.

Сначала он бросил меня за цикл, потому что, исходя из AngularJS (1.x), я пытался найти в ссылке API, для каких вещей DOM они псевдонимы (например, щелчок). Тогда я понял, что им не нужно было с псевдонимом DOM с их собственными директивами, когда я читал это внимательно. https://angular.io/docs/ts/latest/guide/template-syntax.html

Или я совсем не хватает лодки, что меня не удивит.