数据更改时保持两个值同步

时间:2016-12-14 02:17:53

标签: angular rxjs apollo-server

我有两个变量goalsDatagoals,它们可以在初始加载时正常运行,但我希望goalgoalsData保持同步,这样如果有变化在goalsData上,此更改会持续到goals我将如何实现此目标?

ngOnInit() {
    this.goalsData = this.apollo.watchQuery({ query: GoalQuery, forceFetch: true });
    this.goals = this.goalsData.map(({data}) => data.allGoals);

    console.log(this.goals);
  }

1 个答案:

答案 0 :(得分:0)

我还没有使用过Apollo,但是watchQuery正在返回一个Observable。这意味着您必须订阅它才能获得更改。

ngOnInit() {
     this.goalsData = this.apollo.watchQuery({ query: GoalQuery, forceFetch: true });
     this.goalsData
         .map({data}=>data.allGoals)
         .subscribe((goals)=>{
             this.goals = goals;
             console.log(this.goals);
         },(err)=>{
             console.error(err);
         },()=>{
             console.log('finished');
         });
}

假设apollo将发出目标数据,这将继续更新this.goals