サービスにabstarct-child.service
、そうのような:角度2ジェクトの複雑なサービスは、私は3つのサービスと一つの成分を持っている
import {Injectable} from 'angular2/core';
import {AbstractChildService} from './abstarct-child.service';
@Injectable()
export class RootService {
constructor(private _abstractChildService: AbstractChildService) {}
UseChildServiceDoSomethingFunction(){}
}
abstarct-child.service
は、のようなので、見える:
import {Injectable} from 'angular2/core';
@Injectable()
export abstract class AbstractChildService {
abstract doSomething(): any ;
}
をextend-child.service
はそうのように見える:
import {Injectable} from 'angular2/core';
import {AbstractChildService} from './abstarct-child.service';
@Injectable()
export class ExtendChildService extends AbstractChildService{
constructor(private _num: number) { super(); }
doSomething() : any { return true; }
}
app.component
がroot.service
ととしてextend-child.service
を提供しますabstract-child.service
ように:
import {Component} from 'angular2/core';
import {Input} from 'angular2/core';
import {provide} from 'angular2/core';
import {RootService} from './root.service';
import {AbstractChildService} from './abstarct-child.service';
import {ExtendChildService} from './extend-child.service';
@Component({
selector: 'app',
providers: [provide(AbstractChildService, { useClass: ExtendChildService, useValue: this.num})]
})
export class AppComponent {
@Input('given_Num') num: number;
}
私はこの場合app.component
のthis.num
で、extend-child.service
オブジェクトに注入することができる方法を知っていただきたいと思いますか?
私が間違っていることを誰でも見つけることができますか?
ありがとうございました。
extend-child.serviceが依存性注入によって数値オブジェクトを取得するのを見ると、extend-child.serviceに数値を注入してから、root.serviceにextend-child.serviceを注入することはありません。多分私はこれが悪い方法なので、もし誰かが正しい方法を知っていれば? –
私の答えで述べたように、あなたは数字だけをタイプすることはできません。プリミティブ型の場合、型と異なるキーが必要であり、 '@Inject( 'someKey')'をコンストラクタパラメータに追加します。さもなければ、DIはサーバー側で提供される 'string'(数値、ブール値、...)値を区別することができません。 –
よく答えました。問題は、numパラメータがapp.componentに注入されたときに、app.componentがnumパラメータを注入する必要があることです。 –