Angular 角度4:自定义属性指令在<;路由器出口>;不执行

Angular 角度4:自定义属性指令在<;路由器出口>;不执行,angular,angular-routing,angular-directive,angular-components,angular-component-router,Angular,Angular Routing,Angular Directive,Angular Components,Angular Component Router,我目前正在尝试为基于组件的路由的Angular 4(V4.2.6)应用程序创建一个自定义属性指令。我遵循了关于如何创建这样一个属性指令的说明 当myHighlight指令放在根组件上时,一切正常。不幸的是,当与插入路由器出口的组件内的@angular/router结合使用时,它不起作用(属性指令未执行) 为了将问题从我的应用程序中分离出来,我必须 在这个Plunkr上,您可以看到一个名为myHighlight(highlight.directive.ts)的自定义属性指令。此指令用于根组件(ap

我目前正在尝试为基于组件的路由的Angular 4(V4.2.6)应用程序创建一个自定义属性指令。我遵循了关于如何创建这样一个属性指令的说明

myHighlight
指令放在根组件上时,一切正常。不幸的是,当与插入
路由器出口的组件内的
@angular/router
结合使用时,它不起作用(属性指令未执行)

为了将问题从我的应用程序中分离出来,我必须

在这个Plunkr上,您可以看到一个名为
myHighlight
highlight.directive.ts
)的自定义属性指令。此指令用于根组件(
app.ts

然后我添加了两个与路由器一起用于基于组件的路由的组件:
OneComponent
one.component.ts
)和
twoocomponent
twoo.component.ts
)分别绑定到
/one
。在这两个组件中,还使用了
myHighlight
指令,但遗憾的是没有正确呈现/执行,只显示它绑定到的HTML元素(
p
)的文本


如果有人能给我一个指向我做错了什么或需要更改什么的指针,我将不胜感激。

声明:[]
来自
AppModule
的声明仅适用于
ComponentsModule
中的组件。如果要在不同的模块中重用组件或指令,请创建一个featuremodule,并将此featuremodule添加到要使用它们的每个模块的导入:[]

我删除了组件模块,并合并了组件声明和highlight指令,它可以很好地与我配合使用。hi Gunter Zochbauer,你能帮我回答这个问题吗?我昨天问了,但没人回答!谢谢你,甘特!你是对的。当我添加另一个模块
DirectivesModule
并将
HighlightDirective
添加到它的
imports:[]
时,它会工作。我想让我困惑的是Angular没有报告它没有找到属性指令,就像在模板中使用缺少的组件时一样。我不知道那件事。我自己并没有使用TS(只在Plunker中使用SO答案)。