Angular 角度指令选择器不适用于外部库中的元素

Angular 角度指令选择器不适用于外部库中的元素,angular,directive,Angular,Directive,在我的模块中,我用选择器声明了一个角度指令: @Directive({ selector: 'input' }) 我想它也会应用于在外部模块中声明的组件模板中的输入元素,这些模块是我在声明指令的同一模块中导入的 因此,在我的应用程序中,我有如下内容: <my-library-component [(ngModel)]="myModel"></my-library-component> my library组件的模板呈现输入。 在我的模块中,我正在导入声明和导出

在我的模块中,我用选择器声明了一个角度指令:

@Directive({
  selector: 'input'
})
我想它也会应用于在外部模块中声明的组件模板中的输入元素,这些模块是我在声明指令的同一模块中导入的

因此,在我的应用程序中,我有如下内容:

<my-library-component [(ngModel)]="myModel"></my-library-component>

my library组件的模板呈现输入。 在我的模块中,我正在导入声明和导出库组件的模块

这是预期的行为吗


感谢

这确实是预期的行为,因为在外部模块内,您只能使用在该模块内声明的组件(或随模块附带的组件,由外部模块导入)

如果要使用指令,必须先导入(导入或delcares)。在外部模块中也必须执行同样的操作。即使我正在导入一个声明并导出其所有组件的外部模块?(包括我的库组件)我的理解是,您希望从
my library组件内部使用指令。如果这是真的,那么声明
my library component
的模块需要声明指令本身,或者需要从另一个模块导入指令我想我可以声明一个具有宽范围选择器(如“input”)的指令,我希望该指令将应用于所有输入,包括在外部模块的组件(如我的库组件)模板中找到的输入。情况并非如此,组件/指令/管道仅在声明模块内可见(如果它们已导出,也在导入其模块的模块内可见),在我的模块中,我已声明了指令,我正在导入一个外部模块,用于导出组件我的库组件。。。因此,我仍然认为该指令也应该应用于我的库组件,因为它是在指令id声明为:D的同一模块中导入的