1
我想獲取一個對象的值,而不是查詢服務器這麼多次。角度可觀的子和獲得對象不會工作
但是我錯過什麼或做錯了什麼?
我在服務如下:
user$: Observable<any>;
private userChangeSet = new Subject<any>();
constructor(private http: Http, private router: Router) {
this.user$ = this.userChangeSet.asObservable();
}
reloadUserData() {
let url = this.baseapi + '/getuser';
return this.http.get(url)
.map(t=> {
this.updateUser(t.json().user);
return t.json();
});
}
updateUser(object) {
this.userChangeSet.next(object);
}
有沒有一種方法,我可以這樣調用它在另一個組件?
if (this.customservice.user.cash < 3000) {
} else {
}
時t.json()。用戶的結果是
{username: username, cash: 1}
?
另外,爲什麼不這樣做?
this.customservice.user$.subscribe((value) => {
this.xxx= value;
});
因爲這裏說user$
沒有定義
要的信息。即時通訊登錄時調用reloagUserData。即時通訊不想再次調用它。即時通訊只是調用用戶變量。
我忘了在話題,我已經把它添加。現在更新它。它仍然不會以某種方式工作。 是否有可能直接從變量本身獲取?所以我不必調用reloaduserdata?即時消息稱它在別的地方。 – maria
問題是,如果您使用'Observable'並且'Subject'用於使用**共享服務**。共享服務用於在組件之間傳遞和傳遞數據。如果您不希望發生這種交流,並且想要在同一個組件中完成所有工作,只需創建方法,收集數據並獲得。發佈完整的組件代碼,以便我可以瞭解您要實現的目標。 ;) – SrAxi
你檢查了我給你的其他鏈接嗎? 無論如何,我的想法是,服務中的東西會更新其他組件所訂購的vvariable並進一步使用它。 – maria