Угловая служба глобального впрыска - PullRequest
0 голосов
/ 04 декабря 2018

Есть ли способ получить доступ к полю службы, не вводя службу в каждый компонент?или эквивалентно: существует ли какое-либо понятие «глобальной» службы в Angular 6?

Мой пример использования следующий: текстовые метки для полей извлекаются при запуске приложения службой ConfigurationManagementService.Эта служба имеет наблюдаемое поле CurrentApplicationContext $, которое имеет поле объекта ApplicationConfiguration, которое имеет поле объекта Label.(это связано с тем, как был настроен сервер).

Теперь: чтобы использовать метки в представлении компонента, я должен внедрить ConfigurationManagementService (в данном случае ConfigurationManagement) в каждый компонент, а затем подписаться на него (к счастью, я могу использовать метод прямой асинхронной передачи), напримерthis:

<button mat-raised-button color="primary">
<mat-icon">add_shopping_cart</mat-icon> 
{{ (ConfigurationManagement.CurrentApplicationContext$ | async)?.ApplicationConfiguration?.Label['Buy'] }}
</button>

Мой вопрос: есть ли другой более короткий способ сделать это?Потому что это очень трудоемкая и утомительная задача, если вы выполняете ее, как указано для каждого компонента и каждого текстового поля в приложении.

Спасибо!

1 Ответ

0 голосов
/ 04 декабря 2018

Передайте данные в localstorage, например localStorage.setItem('itemName',value), или установите их как cookie, и получите к ним доступ в конструкторе компонентов и получите данные из localstorage / cookie, после чего не нужно подписываться и вводить зависимости. Но вы должны получить все данные в приложениизагрузка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...