angular2中的全局变量,其值可以更改
Global variable in angular2 whose value can be changed
我在引导使用全局变量时注入了一项服务:
bootstrap(AppComponent, [ GloablService ]);
global.service.ts
import {Http} from 'angular2/http';
import {Observable} from 'rxjs/Observable';
import {Observer} from 'rxjs/Observer';
import 'rxjs/add/operator/share';
export class GlobalService {
baseUrl:string;
constructor() {
this.baseUrl='http://localhost:8080';
}
setBaseUrl(url:string) {
this.baseUrl=url;
}
getBaseUrl() {
return this.baseUrl;
}
}
现在我已经启动了这个服务和我的根组件,我能够成功访问变量。
但每当我更改嵌套组件中的变量值时,更改都不会反映到全局。
我也尝试过使用 observables 但没有用。
有什么建议吗?
不要在任何组件上添加providers: [ GloablService ]
,否则组件将获得不同的实例。像您一样只在 bootstrap()
处提供一次,或者只在根组件 AppComponent
.
处提供一次
我在引导使用全局变量时注入了一项服务:
bootstrap(AppComponent, [ GloablService ]);
global.service.ts
import {Http} from 'angular2/http';
import {Observable} from 'rxjs/Observable';
import {Observer} from 'rxjs/Observer';
import 'rxjs/add/operator/share';
export class GlobalService {
baseUrl:string;
constructor() {
this.baseUrl='http://localhost:8080';
}
setBaseUrl(url:string) {
this.baseUrl=url;
}
getBaseUrl() {
return this.baseUrl;
}
}
现在我已经启动了这个服务和我的根组件,我能够成功访问变量。
但每当我更改嵌套组件中的变量值时,更改都不会反映到全局。
我也尝试过使用 observables 但没有用。
有什么建议吗?
不要在任何组件上添加providers: [ GloablService ]
,否则组件将获得不同的实例。像您一样只在 bootstrap()
处提供一次,或者只在根组件 AppComponent
.