2017-01-23 2 views
2

Я видел следующий фрагмент кода на работе - http://plnkr.co/edit/5z4VEQ?p=previewAngular2 Родитель -> Ребенок -> связывания родитель

<app-component2 [(value)]="value"></app-component2> 

Вы можете видеть, что мы передаем значение компонента ребенка и передать его обратно в родительский, когда он изменяется (onChange будет запускаться только после того, как вы фокусируетесь из поля ввода).

Теперь этот код работает, несмотря на то, что излучатель события «valueChange» не подписан нигде. Он будет работать только в том случае, если дочерний компонент имеет излучатель событий, и только если упомянутый излучатель события называется valueChange.

Очевидно, что некоторая магия происходит за кулисами с помощью углового автоматического значения и значения valueChange, но я не могу найти это в документах/не уверен, что это действительно поддерживаемая функция?

+0

Это все здесь: https://angular.io/docs/ts/latest/cookbook/component-communication.html :) – Alex

+0

Не могли бы вы ссылаться на конкретный раздел? Это довольно длинный документ, но я просмотрел его и не смог найти пример. –

+0

Для ввода (от родителя к ребенку): https://angular.io/docs/ts/latest/cookbook/component-communication.html #! # parent-to-child для вывода (от ребенка к родительскому): https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#child-to-parent – Alex

ответ

2

поведения вы наблюдаете это Two way data binding, вы можете прочитать об этом здесь Template Synatx Guide.

enter image description here

Ее также упоминается в Cheat sheet

enter image description here

Надеется, что это помогает !!

+0

Yup the titleChange binding - это то, что я пропустил. Это не упоминается в https://angular.io/docs/ts/latest/cookbook/component-communication.html (страница связи компонента) и немного слишком волшебна для моего вкуса (излучатель события должен иметь название titleChange) , Но вы получаете очки: D –

+0

Ну, мой опыт с Angular начался с двухстороннего связывания данных, и это была одна из основных особенностей Angular, принесенная для меня. Поэтому для многих людей естественно, как работает двухсторонняя привязка, я думаю, поэтому это может быть не документировано, но должно быть, Cheers !! –

+0

Я все для двух привязок данных, но требуя, чтобы вы создали специально названный вывод для работы, чувствует себя немного странно. Я видел это в Ember (я думаю), что является частью причины, по которой я не использую Ember: D –

Смежные вопросы