角度指令:无法识别不同模块中的声明

时间:2019-08-17 13:50:41

标签: angular typescript directive

以下情况:

module1(通用):

  @NgModule({
    imports: [
      FormsModule,
      ReactiveFormsModule,
      CommonModule,
      ...
    ],
    declarations: [
      // components cut
      LoadingSpinner,
      LoadableDirective,  // [appLoadable] selector
    ],
    exports: [
      // components cut
      LoadingSpinner,
      LoadableDirective,
    ],
    entryComponents: [ LoadingSpinner ]
  }
  export class UniversalModule { }


 模块2(可加载内容模块)

    @NgModule({
      imports: [
        ...
        UniversalModule,
        ...
      ],
      declarations: [
        LoadableContentComponent
      ],
    })
    export class LoadableContentModule { }

loadableContent.component.html

    <div class="content" *appLoadable="isLoading"></div>

根据我的理解,在UniversalModule内声明+导出指令并将其导入此模块应该使我可以在导入模块的组件内使用它,但是在实际使用它时会出错。 例如

  

属性绑定appLoadable未被嵌入式上的任何指令使用   模板。确保属性名称拼写正确,并且   所有指令均在“ @ NgModule.declarations”中列出。不能绑定   设置为“ appLoadable”,因为它不是“ div”的已知属性。

1 个答案:

答案 0 :(得分:1)

在提取LoadableDirective代码并将其发布时,我发现了一个错字。问题解决了。