/ / Як надіслати дані з дочірнього контролера на батьківський контролер в AngularJS? - javascript, angularjs, json

Як відправити дані від дочірнього контролера до батьківського контролера в AngularJS? - javascript, angularjs, json

Мені потрібні деякі вказівки, щоб використати найкращі практики для мого завдання в AngularJS.

Завдання:

  1. Всередині подання: у мене є один батьківський контролер і два дочірні контролери.
  2. Дочірні контролери працюють із власними $ -обсягом та об'єктами.
  3. Коли я натискаю кнопку Save у поданні, мені потрібно отримати дані від дочірніх контролерів до батьківського контролера, щоб підготувати об’єкт для розміщення його на сервері.

Я плутаюся, що є найкращим рішенням для цього підходу.

Відповіді:

5 за відповідь № 1

Поширеним способом обміну даними між контролерами є використання використання a сервіс.

Ви могли б також мовлення оновлення батьківського контролера


1 для відповіді № 2

Є багато різних способів досягти цього ..

  1. Використання $ rootScope.
  2. Користування послугами
  3. Використовуйте трансляцію та випромінювання
  4. Оголосіть об’єкт у батьківському контролері, а потім змініть той самий об’єкт у дочірньому контролері.

Використання $ rootScope не є хорошим підходом, оскільки змінна $ rootScope руйнується при закритті програми.

Я також не буду рекомендувати BroadCast чи випромінювати, поки це не буде потрібно.

Сервіси, добре для комунікаторів чорно-білих контролерів, але ви знову вводите його та модифікуєте методи.

У вашому сценарії я б рекомендував використовувати загальну змінну об'єкта $ scope, яка оголошена всередині батьківського і використовується в дочірніх контролерах, оскільки всі методи успадковуються у дочірніх контролерах.


0 для відповіді № 3

Існує три загальних способи обміну даними між контролерами:

1 покладіть дані на сервісне обслуговування або на завод. Оскільки вони одинарні, будь-який контролер, якому вводиться одна і та ж послуга, може обмінюватися даними в цій службі

2 помістіть дані $rootScope

3 використання $broadcast або $emit надсилати події між областями та передавати спільні дані як аргументи подій