Angular 2无法再使用模块

时间:2016-11-29 00:42:45

标签: angular angular2-routing

我最近重新构建了我的架构并为每个组件创建了模块,因此我可以在路由时懒得加载它们。这非常有效。但是,我现在只是将组件导入其他组件时遇到问题而不完全确定原因。我这样导入:

import {TrackingComponent} from './tracking/tracking.component';

我的选择器很简单:

<tracking></tracking>

当我跑步时,我得到:

error_handler.js:46 EXCEPTION:未捕获(在承诺中):错误:模板解析错误: &#39;跟踪&#39;不是一个已知元素:

知道我做错了什么吗?目前,模块/组件的区别有点混乱。感谢。

1 个答案:

答案 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 {}