指令在子模块中不起作用
Directive doesn't work in a sub module
我无法使该指令在惰性加载模块中工作。我已经阅读了文档,我只是将指令添加到我的主模块的声明数组中。该指令在该模块中按预期工作,但在延迟加载的模块中不起作用。它甚至可以防止延迟加载的模块因为模板错误而被打开:
Can't bind to 'myHighlight' since it isn't a known property of 'p'
这是我的 Plunker。
单击 'go to child'
后检查控制台中的错误
那是因为你的指令是在 AppModule
中声明的,而且它只在那里可用。如果你想在两个模块中使用指令,你可以创建 SharedModule
然后从那里声明和导出指令,然后在你的 AppModule
和你的 ChildModule
中导入 SharedModule
:
@NgModule({
declarations: [ HighlightDirective ],
exports: [ HighlightDirective ]
})
export class SharedModule {}
现在您只需将 SharedModule
添加到 AppModule
和 ChildModule
的导入中。
注:
您必须从 AppModule
的声明中删除您的指令,因为它只能声明一次。
我在项目中遇到过类似的问题。我有 shared.module 但它仍然抛出错误
Can't bind to 'pathForUploading' since it isn't a known property of 'div'
我有这个代码
<div class="avatar"
fileUploader
[pathForUploading]="'path'"
(onFileUploaded)="updateAvatar()"></div>
更改属性调用后就没有了
pathForUploading="path"
希望对大家有所帮助
我无法使该指令在惰性加载模块中工作。我已经阅读了文档,我只是将指令添加到我的主模块的声明数组中。该指令在该模块中按预期工作,但在延迟加载的模块中不起作用。它甚至可以防止延迟加载的模块因为模板错误而被打开:
Can't bind to 'myHighlight' since it isn't a known property of 'p'
这是我的 Plunker。
单击 'go to child'
后检查控制台中的错误那是因为你的指令是在 AppModule
中声明的,而且它只在那里可用。如果你想在两个模块中使用指令,你可以创建 SharedModule
然后从那里声明和导出指令,然后在你的 AppModule
和你的 ChildModule
中导入 SharedModule
:
@NgModule({
declarations: [ HighlightDirective ],
exports: [ HighlightDirective ]
})
export class SharedModule {}
现在您只需将 SharedModule
添加到 AppModule
和 ChildModule
的导入中。
注:
您必须从 AppModule
的声明中删除您的指令,因为它只能声明一次。
我在项目中遇到过类似的问题。我有 shared.module 但它仍然抛出错误
Can't bind to 'pathForUploading' since it isn't a known property of 'div'
我有这个代码
<div class="avatar"
fileUploader
[pathForUploading]="'path'"
(onFileUploaded)="updateAvatar()"></div>
更改属性调用后就没有了
pathForUploading="path"
希望对大家有所帮助