現在、ある種の設定クラスをアプリケーションに挿入しようとしています。
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
@Injectable()
export class Settings {
private apiUrl: string = '';
private location: string = '';
private language: string = 'en';
constructor() {
if(localStorage.getItem('apiUrl')) this.apiUrl = localStorage.getItem('apiUrl');
if(localStorage.getItem('location')) this.location = localStorage.getItem('location');
if(localStorage.getItem('language')) this.language = localStorage.getItem('language');
}
getApiUrl(): string {
return this.apiUrl;
}
getLocation(): string {
return this.location;
}
getLanguage(): string {
return this.language;
}
setApiUrl(apiUrl: string): void {
this.apiUrl = apiUrl;
localStorage.setItem('apiUrl', apiUrl);
}
setLocation(location: string): void {
this.location = location;
localStorage.setItem('location', location);
}
setLanguage(language: string): void {
this.language = language;
localStorage.setItem('language', language);
}
}
これは私の設定クラスです...
私が次にやろうとしているのは、アプリケーション全体に注入することです (設定は頻繁に使用されるため)。これについては、bootstrap() 関数を使用してこれを行うのが最善の方法だと思います。だから、これは私のブートストラップ関数です:
bootstrap(AppComponent, [Settings])
apiUrl設定を使用したいサービスのコンストラクターに挿入しました:
@Injectable()
export class UserService {
constructor(private _settings: Settings, private _http:Http) { }
}
しかし、何らかの理由でアプリケーションを実行すると、コンストラクターの最初のパラメーター (_settings) が未定義であるというエラーが UserService に表示されました..
私はさまざまなことを試してきましたが、まだ有効な解決策を見つけていません..