У меня есть две службы: AuthService и MonBanquetService, а AuthService зависит от MyService. Вот основной код этих 2-х услуг:Angular2 Inject service в другой службе создает 2 экземпляра
AuthService.ts:
import {Inject, Injectable} from 'angular2/core';
import {MonBanquetService} from '../monbanquet.service'
@Injectable()
export class AuthService {
public username: string;
constructor(protected _monBanquetService: MonBanquetService) {
// do something()
}
}
MonBanquetService.ts
import {Injectable, Component} from 'angular2/core';
import {Http, Headers, Response} from 'angular2/http';
import {Router} from 'angular2/router';
@Injectable()
export class MonBanquetService {
constructor(public http: Http, private _router: Router) {
console.log('MonBanquetServices created');
}
}
и я эти две услуги в качестве поставщиков в boot.ts:
bootstrap(AppComponent, [
ROUTER_PROVIDERS,
provide(LocationStrategy, {useClass: HashLocationStrategy}),
HTTP_PROVIDERS,
MonBanquetService,
AuthService
]);
Однако, когда я запускаю приложение, я вижу два консольных журнала «MonBanquetServices created». Я думал, что услуги должны быть одноточиями, а как есть два экземпляра?
Спасибо.
то В идеале вы должны добавить только '' AuthService внутри бутстраповской зависимости, которая создаст экземпляр 'MonBanquetService' путем приобретения его внутри. –