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