【问题标题】:combine calculated field to angularfire2 list将计算字段组合到 angularfire2 列表
【发布时间】:2018-03-13 09:38:36
【问题描述】:

我尝试将新创建的字段组合到 angularfire2 列表中,但在实现映射时迷路了,

 const listLoc = this.afdb.list('/userLocations');
listLoc.snapshotChanges()
  .subscribe(actions => {
    actions.forEach(action => {
      let data = action.payload.val();
      let placeLocation = {
        lat: data.lat,
        lng: data.lng
      }
      let usersLocation = {
        lat: -24.25747,
        lng: 112.752
      };
      let distance = this.getDistanceBetweenPoints(
        usersLocation,
        placeLocation,
        'km'
      ).toFixed(2);
      console.log('action payload.val()', data, distance);
    });
  });

我期待像 data.distance 这样的结果,所以我可以调用 data 和 distance 将包括在内。

我正在尝试弄清楚如何在 angularfire2 列表中实现这一点

data.map( location ){
 location.distance =  bla bla bla // distance method will be here
}

请指导,谢谢。

【问题讨论】:

  • 这很混乱,你想做什么,什么不起作用?
  • 我想在数据数组中包含距离,但需要指导以正确的方式使用映射,所以我可以像这样从视图中调用它:data.distance 和其他 data.field。跨度>

标签: rxjs angularfire2


【解决方案1】:

哦,我可以在 snapshotChanges() 之后映射

 const listLoc = this.afdb.list('/userLocations');
listLoc.snapshotChanges()
  .map(actions => {
    actions.map(action => {
      let data = action.payload.val();
      let placeLocation = {
        lat: data.lat,
        lng: data.lng
      }
      let usersLocation = {
        lat: -7.25747,
        lng: 112.752
      };
       data.distance = this.getDistanceBetweenPoints(
        usersLocation,
        placeLocation,
        'km'
      ).toFixed(2);
      console.log('the result i expect', data);
    });
  }).subscribe();

【讨论】:

    猜你喜欢
    • 2017-09-25
    • 1970-01-01
    • 2018-05-09
    • 2021-11-20
    • 2020-02-21
    • 1970-01-01
    • 1970-01-01
    • 2019-07-13
    • 1970-01-01
    相关资源
    最近更新 更多