Почему я получаю ошибку StaticInjector, если я включаю компонент как в HTML, так и внедряю его через DI - PullRequest
0 голосов
/ 07 октября 2019

У меня есть компонент ValidateSessionComponent, который использует LoginFormComponent. Я использую LoginFormComponent в ValidateSessionComponent, включив его в HTML-код ValidateSessionComponent.

. Пока все работает нормально. Тогда я решил также включить ссылку LoginFormComponent через DI в ValidateSessionComponent

constructor(private loginForm2:LoginFormComponent,private helper:HelperService,private dialogService:DialogBoxService,private activatedRoute:ActivatedRoute, private router:Router, private userManagementService:UserManagementService) { }

Это начало вызывать ошибку StaticInjectorError(DynamicTestModule)[ValidateSessionComponent -> LoginFormComponent]: StaticInjectorError(Platform: core)[ValidateSessionComponent -> LoginFormComponent]: NullInjectorError: No provider for LoginFormComponent!

Почему я начинаю получать ошибку?

1 Ответ

1 голос
/ 07 октября 2019

Потому что DI работает только для провайдеров.

Компоненты не являются поставщиками.

Если вы хотите получить ссылку на ваш дочерний элемент, используйте вместо этого ViewChild.

@ViewChild(LoginFormComponent, { static: true }) loginForm: LoginFormComponent;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...