Декоратор Injectable
Что он делает
Метаданные-маркер, которые отмечают класс как доступный для Injector для создания.
Как использовать
@Injectable() class Car {}
Описание
Для получения дополнительной информации см. Руководство по инъекции зависимостей.
Пример
@Injectable()
class UsefulService {
}
@Injectable()
class NeedsService {
constructor(public service: UsefulService) {}
}
const injector = ReflectiveInjector.resolveAndCreate([NeedsService, UsefulService]);
expect(injector.get(NeedsService).service instanceof UsefulService).toBe(true);
Injector будет выбрасывать NoAnnotationError при попытке создать класс, у которого нет @Injectable маркера, как показано в примере ниже.
class UsefulService {}
class NeedsService {
constructor(public service: UsefulService) {}
}
expect(() => ReflectiveInjector.resolveAndCreate([NeedsService, UsefulService])).toThrow();
экспортировано из @angular/core/index, определено в @angular/core/src/di/metadata.ts
© 2010–2017 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://v2.angular.io/docs/ts/latest/api/core/index/Injectable-decorator.html