Директива Angular 6 не инициализируется при помещении в лениво загруженный компонент модуля - PullRequest
0 голосов
/ 27 июня 2018

Очень плохо знаком с Angular 6.

Я объявил директиву в AppModule и в шаблоне appComponent, если применил эту директиву, она работает. В компоненте приложения есть выход маршрутизатора, в который загружается ленивый загруженный модуль в самом начале.

Теперь, если я хочу применить директиву в любом шаблоне компонента lazyloaded модуля, директива не инициализируется. Директива является директивой атрибута, и я объявил ее правильно и тоже использовал, потому что внутри компонента приложения она работает нормально.

Не понимаю, пожалуйста, помогите.

1 Ответ

0 голосов
/ 27 июня 2018

Я вижу, что есть проблема с вашим дизайном. Вместо того, чтобы иметь directive в AppModule, создайте SharedModule и затем внедрите туда directive. Импортируйте SharedModule везде в вашем приложении. Таким образом, вы можете получить доступ к вашему directive из внешних компонентов (из других модулей).

Убедитесь, что вы объявляете и экспортируете его внутри SharedModule

Я думал, что что-либо объявленное в модуле приложения должно быть доступно для все модули

Нет, это не правильно, дочерние модули не знают, что у вас внутри AppModule. ChildModule - это просто еще один независимый модуль, такой как AppModule. Вы могли бы просто выставить AppModule на ChildModule, но это может вызвать циклическую зависимость. Вот почему вы должны использовать SharedModule

...