全局导入 Angular 指令

问题描述

我试图找出是否有办法在模块中为我们在整个应用程序中使用的指令之一定义 .forRoot()。我希望能够在我的 app.module.ts 中导入该模块一次,以便我也可以为整个应用程序设置一些认值。

我的指令是 JavaScript 库的包装器,这就是为什么有些属性我想定义一次。

这可能吗?我一直在谷歌搜索,但还没有看到一个很好的例子,虽然我知道一些 nom 包正在这样做。

指令模块

import { ModuleWithProviders,NgModule } from '@angular/core';

import { MyDirective } from './my.directive';

@NgModule({
    declarations: [
        MyDirective
    ],exports: [
        MyDirective
    ]
})
export class MyModule {
    static forRoot(): ModuleWithProviders {
        return {
            ngModule: MyModule
        }
    }
}

应用模块

@NgModule({
    imports: [
        ...
        MyModule.forRoot()
        ...
    ],declarations: [ ... ],providers: [ ... ],bootstrap: [AppComponent]
})
export class AppModule { }

当我尝试上述操作时,指令在整个应用程序中都不可用。我仍然需要将 MyModule 导入各个模块。

示例使用错误 Can't bind to 'wbDirective' since it isn't a kNown property of 'span'.

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)