如果你想獲得新的價值,那麼你必須取消訂閱上次訂閱,並再次訂閱新值。你可以在角2流星中這樣做。
在服務器端發佈
if (Meteor.isServer) {
Meteor.publish('user.teams', function(option : string) {
console.log(option); // you will get your dynamic param value in option
return findUserTeams.find({"team": option}); // apply your query here
});
}
,並在客戶端,你可以做這樣的事情。
userteamdata: Observable <any[]> ;
userteamSub: Subscription;
this.userteamSub = MeteorObservable.subscribe('user.teams', extraTeamId).subscribe(() => {
this.userteamdata = findUserTeam.find({}).zone();
});
現在
當你extraTeamId值的變化則可以檢測到變化 ,做這樣的事情
valuechangefunction(){
if (this.userteamSub) {
this.userteamSub.unsubscribe();
}
this.userteamSub = MeteorObservable.subscribe('user.teams', extraTeamId).subscribe(() => {
this.userteamdata = findUserTeam.find({}).zone();
});
}
我希望這將有助於在這個[鏈接:)
查找反應性改變部分](https://angular-meteor.com/tutorials/socially/angular2/search-sort-pagination-and-reactive-vars),我認爲它會符合你的需求 – Khang
謝謝你,我沒有看到這個實現之前,但我喜歡!也許我會嘗試一個更簡單的版本。 –