Вызов данных в каждом контроллере против их широковещательной передачи / передачи на все контроллеры - PullRequest
0 голосов
/ 29 августа 2018

Как я уже изучал, мы можем использовать $ emit для передачи данных на все родительские контроллеры и $ broadcast для передачи данных на все дочерние контроллеры, в то время как мы можем использовать $ on для перехвата данных, испускаемых / передаваемых из $ испускает / $ радиопередачи. Для получения данных из внешнего json мы используем $ http.get.

Если у нас есть несколько контроллеров, вложенных друг в друга, рекомендуется ли использовать $ http.get несколько раз на каждом контроллере или использовать $ http один раз на родительском контроллере, и данные передаются всем присутствующим дочерним контроллерам? Или лучше, если у нас есть отдельная служба для обработки всех запросов $ http.get, которые могут в дальнейшем использоваться в каждом из контроллеров?

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Независимо от того, какую опцию вы выберете, вы должны вызывать API ($http функции) из сервисов. Это делает их многоразовыми.

Сказав это, в вашем случае вещание не очень хорошая идея. Я бы пошел с вариантом № 2. Также, если ваш ответ будет одинаковым для всех запросов от дочерних контроллеров, попробуйте сохранить ответ первого вызова в службу, а затем повторно использовать его.

0 голосов
/ 29 августа 2018

Вы можете создать функцию в службе и использовать ее, когда захотите, как родитель и потомок.

**Service::**

function getData() {
// Get data from API and return.
}

**Controller 1**

function getRecord() {
 // call service1.getData();
}

**Controller 2**

function getRecord() {
//  calll service1.getData();
}
...