2016-09-09 2 views
1

Заметка о дублировании: Большинство вопросов + согласно ответам на эту же тему на основе Angular2 < = v2.0.0-rc4. С rc5 старый API Module/Provider был устарел, а в rc6 удален, поэтому эти ответы больше не применяются.Как ввести услугу в другую службу в Angular2> = 2.0.0-rc6?

Вопрос: Как вставить услугу углового2 в другой класс обслуживания? Услуги Singe не @Component() s у них нет поля метаданных «prodivers». И в angular2> = rc6 добавление сервиса в зависимость от функции bootstrap() больше не работает. Итак, как это сделать?

ответ

2

Все поставщики, добавленные к providers: [] из @NgModule(), доступны по всему миру (за исключением ленивых загружаемых модулей). Так что, если Service1 потребности придать Service2 этого достаточно:

@NgModule({ 
    providers: [Service1, Service2], 
    // or 
    imports: [SomeModule] // where `SomeModule` contains above providers 
}) 
class AppModule {} 

Вы также можете добавить поставщиков компонентов.

@Component({ 
    providers: [Service1, Service2] 
}) 
+0

Я так и думал, но объявление службы в разделе поставщиков в описании '@ Ngmodule', похоже, не работает для меня. Добавление настраиваемого модуля в раздел 'import' должно быть ненужным, если обе службы находятся в одном и том же' @ NgModule'? – Dyna

+0

Необходимо импортировать «где-то» (транзитный, импортированный корневым модулем, где все модули между ними ** не ** ленивы загружены), в противном случае будет загружен модуль. –

+0

Извините, и спасибо, это была опечатка. Должно быть 'AppModule' –

Смежные вопросы