2016-08-22 4 views
0

Я создаю приложение Angular2, и я также создаю страницы, используя вложенные компоненты.Angular2 привязывает компоненты к конечной точке API

Однако у меня есть один вариант использования, когда один вложенный компонент, который действует как фильтр, должен сделать все остальные вложенные компоненты обновлением информации, отображаемой на основе того, что было установлено на этом фильтре. У меня есть схема того, как выглядит моя страница и чего я хочу достичь.

enter image description here

Я уже знаю, что вложенный компонент может испускать события на любой родительский компонент является, чтобы вызвать то, что определенные действия.

Однако я хотел бы знать две вещи: - Могу ли я привязать компонент к данной конечной точке API и обновить этот компонент, отображаемую информацию (путем запроса запроса к конечной точке) в зависимости от того, что установлено на фильтре? - Как заставить все мои компоненты на странице зависеть от фильтра, если они не связаны напрямую с конечной точкой API?

С наилучшими пожеланиями.

ответ

0

Вы должны создать услугу Injectable(), которую вы можете получить от всех ваших компонентов.

Вы объявляете сервис, аннотируя класс с помощью функции @Injectable(). Затем добавьте этот класс в массив поставщиков вашего модуля приложения, который сделает его доступным для всего мира для всех компонентов, действуя как однопользовательский сервис. Наконец, добавьте службу в свои компоненты, используя конструктор класса компонента, и теперь у вас есть центральный объект, где ваши компоненты результатов фильтрации могут считывать состояние настроек фильтра.

Подробнее об услугах здесь: https://angular.io/docs/ts/latest/tutorial/toh-pt4.html

+0

Здравствуйте, Питер. Спасибо Вам за информацию. У меня уже есть служба, которая делает это, но то, что вы в основном говорите мне, это то, что либо у меня есть функция для каждого компонента в сервисе (и мне нужно добавить службу в каждый компонент), либо у меня есть служба на верхнем уровне родительский компонент и инициализировать дочерние элементы родительского элемента, но нет прямой привязки к конечной точке API? Должен признаться, это немного разочаровывает, но по-прежнему кажется разумным. –

+0

Я думаю, что вам нужно получить доступ к конечной точке API из службы и отправлять запросы от службы к конечной точке API всякий раз, когда изменяется состояние фильтра. И тогда ваши компоненты результатов получат свои данные из службы Injectable. Разве это не даст вам обязательство, которое вы хотите достичь? –