我正在尝试使用Angular2创建我的第一个应用程序,当我需要使用Http服务时,我需要使用
将其添加到我的ngModule中import {HttpModule} from '@angular/http'
然后在导入中引用它,之后我需要在service.ts文件中引用它,如下所示:
import {Http} from '@angular/http'
到目前为止一切顺利。现在为什么当我需要使用ngModel时,我需要仅在ngModule中引用FormsModule,如下所示:
import {FormsModule} from '@angular/forms'
为什么不像在Http模块中那样引用组件文件中的FormsModule?
我错过了什么吗?谢谢你的帮助。
答案 0 :(得分:2)
http
是一项服务。需要时需要导入服务(即组件构造函数中的依赖注入)。
ngModel
是一个指令。指令和组件需要在ngModule
定义中声明,但它们不需要包含在组件定义文件中。
@NgModule({
declarations: [MyComponent, MyDirective, etc]
})
如果组件和指令可用于导入它们的模块,则需要导出它们:
儿童模块:
@NgModule({
// MyComponent and MyDirective are available to Sub-Components
declarations: [MyComponent, MyDirective, etc],
// MyComponent is public to the module, MyDirective is private
exports: [MyComponent]
})
export class ChildModule {}
父模块:
@NgModule({
// MyComponent is available in sub-components in ParentModule
imports: [ChildModule]
})
export class ParentModule {}