サービスで、アプリケーションがサポートしている現在のコインに関する情報を取得したいと考えています。 CoinsService子コンポーネントのサービスをコンストラクタに挿入しなくても使用する
import { Injectable } from '@angular/core';
const coins = {
"btc":"bitcoin",
"ltc":"litecoin"
};
@Injectable()
export class CoinsService {
getCoins(){
return coins;
}
getSpecificCoin(coinShortcut: string) {
return coins[coinShortcut];
}
}
私のユーザークラスは次のようになります:私はこのようにそれをしなかったユーザーを作成したい場合は、サービスの前に
import { CoinsService } from './coins.service';
export class User {
constructor(public id: number, public balance: number, public coinsService: CoinsService) {
console.log(coinsService.getCoins());
}
}
:
は、そのため私は、サービスを作成しましたlet userA = new User( '1'、 '200');私は、オブジェクトの作成時にcoinServiceに渡す必要がサービスを今すぐ
: 私もapp.componentを投稿する全体性のためにユーザAが=新しいユーザー(「1」、「200」、coinService)
てみましょう。 TS:
import { Component } from '@angular/core';
import { User } from './user';
import { CoinsService } from './coins.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
providers: [CoinsService]
})
export class AppComponent {
title = 'app';
constructor(private coinsService: CoinsService){
let userA = new User(1, 200, coinsService);
}
}
は、実際にそれを必要とするコンポーネントに「それを渡す」 ずにUserクラスでサービスを利用できるようにするため、他のオプションはありますか?
CoinsServiceが必要なユーザーごとに毎回明示的に通知することなくユーザーを作成したいと考えています。
作成されるすべてのユーザーがアクセスできるのは、標準である必要があります。
また、サービスは、App.Component以下のすべてのコンポーネントで使用できる必要があります。 そのため、私はプロバイダ配列にCoinssServiceを入力しました。
何か助けていただければ幸いです。