2016-12-09 13 views
3

Я использую Angular 1.5.9.Угловой 1.5. Коммуникация компонентов. Лучшая практика

Прямо сейчас у меня есть два компонента, которым необходимо обмениваться данными. Если я что-то изменил в первом (например, выберите элемент в списке) => нужно изменить второе (выбранный элемент должен быть отображен) и наоборот (изменение во втором -> изменение в первый один) Я прочитал о многих подходах, так что я могу справиться с этим в нескольких способах:

  1. связи через разделяемую службу
  2. Используя два путь связывание данных («=» варианта в компонентных привязках). Пример: https://jsfiddle.net/peter_drinnan/t4q4nrfp/27/
  3. Использование одностороннего связывания данных с подходом ввода/вывода. Пример: http://stackoverflow.com/questions/36033940/how-to-pass-data-between-child-components-in-angular-1-5-not-using-scope
  4. Использование «require» (некоторый родительский компонент для обмена данными). Пример: http://stackoverflow.com/questions/36645065/component-communication-in-angular-1-5

Возможно, я что-то пропустил? Что такое лучшая практика?

спасибо.

ответ

0

Ваш весь пример идеально подходит для использования 3 вариант:

  1. родительский компонент для сохранения/загрузки данных
  2. компонентов, чтобы показать список с обратным вызовом на выберите
  3. компонента, чтобы показать (+ правка)

Этот способ даст вам легкий проверяемость и т.д. (Пожалуйста, обратите внимание на benefit list)

Что интересно для меня, как общаться между не столь близких компонентов:

У нас есть компонент А, чтобы показать города и компонент В, чтобы показать странам каждый загружать данные для себя, и фокус в том, - когда вы удаляете последний город из страны (A), вам необходимо удалить страну из списка (C). Предположим, , что нам нужно перезагрузить список стран ...

Что лучше всего общаться в этом случае?

У меня есть стойкое ощущение, что события, используя $ rootScope это плохой способ пойти ...