Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   Angular 2+: Как получить результат колбека в компоненте? (https://javascript.ru/forum/angular/70733-angular-2-kak-poluchit-rezultat-kolbeka-v-komponente.html)

Shitbox2 28.09.2017 20:45

Angular 2+: Как получить результат колбека в компоненте?
 
Стандартная ситуация. У нас есть какой-то компонент, который при изменении внутри себя запрашивает данные с сервера и как-то обрабатывает их (в примере просто показывает прелоадер). В первом Ангуляре это делалось элементарно
<loader change="loadData()">

loadData возвращает промис, который ловит компонент лоадера и использует в своих целях.

В Ангуляр 2+ рекомендуют в @Output запихивать EventEmitter и плясать от этого. Разумеется, в таком случае никакой промис прочитать не удастся и приходится городить структуру с колбеками (loader-1 в примере)

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

Как вы решаете подобную задачу?

Пример:http://plnkr.co/edit/tAUXaV26C9hCOQ0X89P5?p=preview

destus 29.09.2017 08:58

Может с архитектурой Redux лучше познакомиться?

Shitbox2 29.09.2017 10:51

destus, перепешите, пожалуйста, мой пример на Redux. Сомневаюсь, что это будет проще


Часовой пояс GMT +3, время: 09:09.