我有這個簡單的服務,這是一個兩provider
模塊:Angular 5:組件之間共享數據的服務(跨模塊)?
@Injectable()
export class PlatformPickerService {
platforms: string[] = [
'macOS', 'Linux', 'Windows'
];
public platform: string;
constructor() {
this.platform = this.platforms[1];
}
public getPlatform(): string {
const platform = localStorage.getItem('platform');
return platform == null ? this.platform : platform;
}
public setPlatform(platform: string) {
this.platform = platform;
localStorage.setItem('platform', platform);
}
}
不幸的是,無處我用它收購了選擇的值。在Module之外使用它只給出默認值,在Module中使用它不會給出任何值。
全測試用例:https://stackblitz.com/edit/angular-aru94g-2djexv
更改服務中的默認值是否在下拉框中生效? – nayakam
是的,它的確如此。 –
是嗎?在你的演示中,默認顯示MacOS,但在PlatformPickerService默認值設置爲「Linux」的平臺[1]。 – nayakam