@Coder321

Рендер переменных с сервиса?

Тут появился один вопрос, который наверное больше относится к лучшим практикам Angular 2.
Допустим у нас есть сервис который делает запрос на сервер и получает массив чего то в ответ. Будет ли считатся правильным, отрендерить на вью переменную сервиса и при этом сам компонент оставить не тронутым?
В компоненте:
constructor(
publick service: myService
){}

и на вью:
<div>
     <span *ngFor="let user of service.users">{{user.name}}</span>
</div>
  • Вопрос задан
  • 147 просмотров
Пригласить эксперта
Ответы на вопрос 1
alexiusp
@alexiusp
senior frontend developer
С точки зрения "лучших практик" это, конечно, плохая идея, т.к. такое решение плохо тестируется и подвержено багам. Допустим, ты решил поменять что-то в сервисе. Тогда очень велика вероятность, что всё приложение у тебя посыпется, если ты эту переменную используешь, скажем, не только в этом компоненте, но и ещё в нескольких.

Лучшим решением будет безусловно предоставление сервисом интерфейса. В описанном варианте, наверное getUsers(), который будет возвращать, готовый массив, Promise или Observable, в зависимости от необходимости. А внутренню кухню и, в частности, переменные, лучше скрывать от пользователей.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы