アプリケーションの存続期間中、いくつかの属性の値を保持するシングルトン オブジェクトを Angular2 で作成する方法を考えています。これにより、それを多くのコンポーネントで使用して注入することができます。
何か案は?
ありがとう
私の試みは次のことでした:
bootstrap(MyApp,[ROUTER_PROVIDERS,
HTTP_PROVIDERS,
provide(LocationStrategy, {useClass: HashLocationStrategy}),
provide(APP_BASE_HREF, {useValue: '/'}),Login])
where
Login:
@Injectable()
export class Login {
public username: string = "any";
constructor(private _http:Http, private _router:Router){
}
public static login(username,password){
var creds = 'username=' + username+'&password='+password;
this._http.post('/authentication/login',creds,{headers: contentHeaders})
.subscribe(
success =>{
this.username = success.json().username;
this._router.navigate(['Dashboard']);
},
error =>{
console.log('Wrong creds')
});
}
public getUsername(){
return this.username;
}
}
この場合、getUsername() は機能しますが、this._http 投稿は機能しません。エラーがスローされます。
元の例外: TypeError: 未定義の元のスタック トレースのプロパティ 'post' を読み取ることができません: