如果我在应用模块中导入,例如ElementRef和导入服务时,服务使用ElementRef,我是否必须在服务中再次导入ElementRef?
或者更一般:我可以,例如在app.module中,从angular / core导入所有需要的元素,并使它们可用于所有指令,管道和服务,这些也在app.module中导入。
答案 0 :(得分:4)
您需要在需要使用它们的地方导入它们。
因此,在AppModule
中,您将导入它们以将其添加到providers
,declarations
,imports
等。
在您的组件,指令,管道,模块,服务等中。如果您需要使用它们,则需要再次导入它们。
示例:
<强>的AppModule 强>
import { HttpModule } from '@angular/http';
@NgModule({
bootstrap: [AppComponent],
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule
]
})
export class AppModule {
constructor() {
}
}
<强> UserModule 强>
这里我需要Http来执行一些http调用,所以我必须导入它......
import { HttpModule } from '@angular/http';
@NgModule({
imports: [
HttpModule
],
declarations: [],
exports: [
HttpModule
]
})
export class UserModule{
}
答案 1 :(得分:-1)
导入只会在导入它的类中可见/使用。
do I have to import ElementRef again in the service
是的,您必须导入它,因为服务类将无法访问app.module中的导入。
can I, e.g. in app.module, import all the needed elements from angular/core and make them available to all the directives, pipes and services, which are also imported in app.module
这不可能,因为只有app.module才能使用其导入