现在我们已经介绍过了独立的组件,您可能已经测试过它们,并很快意识到,如果您开始使用诸如* ngIf
,或其他组件,您的代码将不再编译。
这是因为那些模板依赖关系(只在组件的HTML模板中使用)还没有导入到Typescript中,所以Angular无法编译你的模板。当我们使用模块时,这不会发生,因为我们的组件是在那里声明的。我们还默认导入CommonModule,它包含Angular框架的所有主要指令和管道。
如果希望将所有这些特性导入到独立组件中,可以使用进口
属性,如下所示:

如果你只想导入一个特性而不是整个模块,你也可以这么做——但是只有当该特性被声明为独立时:

这意味着Angular团队已经修改了所有的Angular指令和管道要作为独立特性提供(请参阅ngIf源代码在这里作为一个例子)。
当然,如果需要,我们仍然可以导入整个模块,或者列出单独的模板依赖项,这意味着所有管道、指令和组件都应该单独列在进口
数组:

你可以看到斯塔克布利茨的例子.