0
サービスクラス(CourseService)を作成します。どのコンポーネントにパラメータ化されたコンストラクタを持つサービスを注入する - 角度
サービスクラスパラメータ化されたコンストラクタを持つ
import { Injectable } from '@angular/core';
@Injectable()
export class CourseService {
constructor(private name?:string) { }
getName() : string{
return "Service Name is"+ this.name;
}
}
コンポーネントにサービスを注入します。
AppComponent.html:1 ERROR Error: StaticInjectorError[CourseService]:
StaticInjectorError[CourseService]:
NullInjectorError: No provider for CourseService!
at _NullInjector.get (core.js:993)
at resolveToken (core.js:1281)
at tryResolveToken (core.js:1223)
at StaticInjector.get (core.js:1094)
at resolveToken (core.js:1281)
at tryResolveToken (core.js:1223)
at StaticInjector.get (core.js:1094)
at resolveNgModuleDep (core.js:10878)
at NgModuleRef_.get (core.js:12110)
at resolveDep (core.js:12608)
はどのコンポーネントでこのサービスを注入する:プロバイダで
はすでにコンポーネントクラス
import { Component, OnInit } from '@angular/core';
import { CourseService } from '../../services/course.service';
@Component({
selector: 'app-course',
templateUrl: './course.component.html',
styleUrls: ['./course.component.css']
})
export class CourseComponent implements OnInit {
constructor(private courseService: CourseService) { }
ngOnInit() {
let serviceName = this.courseService.getName();
}
}
ブラウザのコンソールエラー作成され、この
providers: [
CourseService
]
のように注射して?
サービスのインスタンスが必要な場合は、コンテナから文字列を入力することはできません。それをローカル変数にするだけです。提供されたサービスのみを注入できます。私は 'CourseServicesService'が上記のタイプミスであると思います、はい? –