Мне нужно ввести услугу в другую услугу в приложении angular 2
. После прочтения документов я вывел, что лучший подход - использовать Factory Provider. Однако два вопроса возник:Как использовать заводского поставщика в угловом 2
1) Документы рекомендовать создание HeroServiceProvider
класса с двумя «сегментами коды»:
let heroServiceFactory = (logger: Logger, userService: UserService) => {
return new HeroService(logger, userService.user.isAuthorized);
};
export let heroServiceProvider =
{ provide: HeroService,
useFactory: heroServiceFactory,
deps: [Logger, UserService]
};
Моим вопрос заключается в том, как следует класс вообще выглядит? Где можно добавить вышеперечисленные сегменты кода?
2) Как следует/можно использовать эту фабрику? Я вижу, его следует импортировать как:
import { heroServiceProvider } from './hero.service.provider';
@Component({
selector: 'my-selector',
template: `
`,
providers: [heroServiceProvider]
})
Как можно получить желаемую параметризованную услугу и получить доступ?
Путем инъекции HeroService, как и в случае любой другой услуги. –
Как сказал JB Nizet, почему бы вам просто не добавить его к своему конструктору, как любые другие инъекции? – echonax