Typescript 将参数从组件发送到6中的服务构造函数

Typescript 将参数从组件发送到6中的服务构造函数,typescript,dependency-injection,frontend,angular6,web-frontend,Typescript,Dependency Injection,Frontend,Angular6,Web Frontend,我是angular6的新手,当我将一个参数从组件发送到服务时,会得到StaticInjectorError。怎么了 我的代码是这样的 组成部分: import { Component, Input, OnInit } from '@angular/core'; import { myService } from '../../@core/data/myService'; @Component({ selector: 'table', templateUrl: './table.compo

我是angular6的新手,当我将一个参数从组件发送到服务时,会得到StaticInjectorError。怎么了

我的代码是这样的 组成部分:

import { Component, Input, OnInit } from '@angular/core';
import { myService } from '../../@core/data/myService';
@Component({
  selector: 'table',
  templateUrl: './table.component.html'
})
export class TableComponent implements OnInit {
  constructor(private service: myService) {
  }
  ngOnInit() {
    this.service = new myService ("name");
}
服务:

 import { Injectable, Inject } from '@angular/core';
    import { Observable } from 'rxjs/Observable';
    import { DataService } from './data.service';

    @Injectable() export class myService {

        constructor(
            entityName: string,
        ) {
            console.log(entityName);
        }
    }
app.module.ts:

import { myService } from './@core/data/myService '
import { TableModule } from './pages/table/table.module';

@NgModule({
  declarations: [AppComponent],
  imports: [
    BrowserModule,
    BrowserAnimationsModule,
    HttpClientModule,
    AppRoutingModule,

    NgbModule.forRoot(),
    ThemeModule.forRoot(),
    CoreModule.forRoot(),
  ],
  bootstrap: [AppComponent],
  providers: [
    myService,
    TableModule
  ],
})
export class AppModule {
}
错误消息: ProductsComponent.html:1错误:StaticInjectorError(AppModule)[BDBaseService->String]: StaticInjectorError(平台:核心)[BDBaseService->String]: NullInjectorError:字符串没有提供程序! 在NullInjector.push../node_modules/@angular/core/fesm5/core.js.NullInjector.get(core.js:979) 在resolveToken(core.js:1232) 在tryResolveToken(core.js:1182) 在StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get(core.js:1077) 在resolveToken(core.js:1232) 在tryResolveToken(core.js:1182) 在StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get(core.js:1077) 在ResolvingModuleDep(core.js:9238) at_createClass(core.js:9283)
在_createProviderInstance$1(core.js:9255)

您不需要
this.service=new myService(“name”)。服务在某处提供时即被创建。在您的情况下,在
app.module.ts
中。这意味着整个应用程序只使用此服务的一个实例。如果需要多个实例,则必须在模块或组件中再次提供。如果在不同级别上多次提供服务(例如,应用程序模块内和组件内),则使用最低级别上提供的服务

要在组件中提供服务,只需在@component装饰器中添加行:

@Component({
    selector: 'table',
    templateUrl: './table.component.html',
    providers: [myService], // <---
})
@组件({
选择器:'表',
templateUrl:'./table.component.html',

提供者:[myService],//向您显示app.module.ts文件。哦,顺便说一句,不要使用
选择器。不确定这是如何解决问题的。这是关于带有参数化构造函数的服务,而不是关于如何实例化服务。