我想知道如何在 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:无法读取未定义原始堆栈跟踪的属性“帖子”: