我最近重新构建了我的架构并为每个组件创建了模块,因此我可以在路由时懒得加载它们。这非常有效。但是,我现在只是将组件导入其他组件时遇到问题而不完全确定原因。我这样导入:
import {TrackingComponent} from './tracking/tracking.component';
我的选择器很简单:
<tracking></tracking>
当我跑步时,我得到:
error_handler.js:46 EXCEPTION:未捕获(在承诺中):错误:模板解析错误: &#39;跟踪&#39;不是一个已知元素:
知道我做错了什么吗?目前,模块/组件的区别有点混乱。感谢。
答案 0 :(得分:3)
您不需要将组件类导入其他类。这绝对没有(在Angular的上下文中)但是让你在另一个文件中使用该类。
您需要做的是@NgModule.imports
组件所在的任何模块,进入您尝试使用其他组件的组件的另一个模块
@Component({
selector: 'other'
})
class OtherComponent {}
@NgModule({
declarations: [ OtherComponent ],
exports: [ OtherComponent ]
})
class OtherModule {}
@Component({
selector: 'consumer',
template: '<other></other>'
})
class ConsumerComponent {}
@NgModule({
imports: [ OtherModule ],
declarations: [ CosumerComponent ],
exports: [ ConsumerComponent ]
})
class ConsumerModule {}