自分のサービスに、自分の設定パラメータを持つクラスを注入したい。角2がサービスにクラスを注入する
私は、以下のサンプルコードをしましたが、それが動作していません。
import { Config } from '../app.constants';
console.log(Config); // here i can access to my properties of config
@Injectable()
export class MyService {
protected config: Config;
constructor(protected _http: Http, @Inject(Config) _configuration: Config) {
console.log(this.config); // undefined
console.log(_configuration); // undefined
}
私はスコープを理解し、私は私の中の私のクラスのコンフィグレーションにアクセスするにはどうすればよいの角2 のプロセスを注入didntのだと思いますサービスMyService?
編集:ここでは
は私のモジュールが
import { NgModule } from '@angular/core';
import { MyService } from './my.service';
import { Config } from '../app.constants';
@NgModule({
imports: [
],
declarations: [
MyService
],
exports: [
MyService
],
providers: [
MyService,
Config
]
})
export default class MyModule {}
であり、ここで私の設定です:
import { Injectable } from '@angular/core';
@Injectable()
export class Config {
public Port: number = 1234;
public Server: string = "http://my-server.com";
}
サービスMYSERVICEが直接呼び出されるが、私はそのように拡張されていません。
@Injectable() エクスポートクラスTestService extends MyS erviceそのようにインポートされた{ ... }
:
import { TestService } from '../service/test.service';
//some modules are from ng2-admin, we can ignore them
@NgModule({
imports: [
CommonModule,
NgaModule,
TestRouting
],
declarations: [
TestComponent,
HoverTable
],
exports: [
TestComponent,
HoverTable
],
providers: [
TestService
]
})
export default class TestModule {}
、最終的には私のコンポーネント
@Component({
selector: 'test-list',
template: require('./test.html')
})
export class TestComponent {
constructor(protected service: TestService) {
//console.log(service);
}
あなたは 'console.logを試しましたか? _configuration) '? – adriancarriger
私のクラスでは影響を受けていない_configurationは、私のコンストラクタのローカルプロパティです。 –
@estus多くのデータを使って私の質問を編集しました –