放置在延迟加载模块的组件中时,Angular 6 指令未初始化

标签 angular angular2-directives

Angular 6 的新手。

我已经在 AppModule 和 appComponent 模板中声明了一个指令,如果我应用该指令它就可以工作,在应用程序组件中有一个路由器导出,其中一个延迟加载模块在一开始就被加载。

现在,如果我想在惰性加载模块的任何组件模板中应用该指令,则该指令不会被初始化。该指令是一个属性指令,我已正确声明并使用它,因为在应用程序组件中它工作正常。

没有得到任何线索,请帮助。

最佳答案

我发现您的设计存在问题。不要在 AppModule 中使用您的 directive,而是创建一个 SharedModule,然后在其中实现 directive。在应用的其他任何地方导入 SharedModule。这样您就可以从外部组件(从其他模块)访问您的指令

确保在 SharedModule 中声明并导出它

I thought if anything declared in app module should be available to all modules

不,这是不正确的,子模块不知道您在 AppModule 中有什么。 ChildModule 只是另一个独立的模块,如 AppModule。您可以简单地将 AppModule 暴露给 ChildModule,但这可能会导致循环依赖。这就是您必须使用 SharedModule

的原因

关于放置在延迟加载模块的组件中时,Angular 6 指令未初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51068588/

相关文章:

javascript - 在 angular2 中添加成功页面

angular - 如何在不指定组件类型的情况下将父组件注入(inject)共享指令?

typescript - Angular2,TypeScript,如何读取/绑定(bind)属性值到组件类(在 ngOnInit 中未定义)

typescript - Angular2 http.get 在构造函数中看不到 'this'

javascript - Angular 5 : setting (click) value from an object not working

angular - ionic2 不创建 webpack.config.js

Angular 2 |如何根据创建组件的父级将样式设置为动态组件样式?

angular - 如何从 Angular 2 中的指令附加动态 DOM 元素?

Angular 异常 : Can't bind to 'ngForIn' since it isn't a known native property

javascript - Angular 2 : Callback when ngFor has finished