【问题标题】:Leaflet AngularFire2 code in button 1st click works 1 time 2nd click works 2 time 3nd click works 3 time按钮中的传单 AngularFire2 代码第一次点击有效 1 次 第二次点击有效 2 次 第三次点击有效 3 次
【发布时间】:2017-11-06 14:02:18
【问题描述】:
    CollectPixi(){

         this.map.locate({setView:true,maxzoom:30}).on("locationfound",e=>{
           this.db.list(`/pixidata`).snapshotChanges().map(actions=>{
             return actions.map(action => {
                     const $key = action.payload.key;
                     const data = { $key, ...action.payload.val() };
                     return data;
                 });
             }).subscribe(items => {

               let pixizaa = items.map(this.getObjectWithoutKnowingKey);

               console.log(pixizaa);
               });




              });
}

CollectPixi 功能在按钮中。

当我单击按钮 1 次时,我得到 console.log(pixizaa) 输出 1 次。 如果我第二次点击它,我会得到 2 次输出 如果我点击第三次,我会得到 3 次输出。

html:

  <button ion-button class="button-collectpixi" (click)="CollectPixi()"  block>Collect Pixi!</button>

我点击了 3 次按钮。为什么不是 3

根据答案

this.map.locate({setView:true,maxzoom:30}).on("locationfound",e=>{

}

是重复的原因。但我需要在 collectpixi 函数中使用 e.latitude e.longitude 值。我的意思是我获取用户位置数据并在 collectpixi 数据中使用它进行一些计算。

【问题讨论】:

    标签: javascript firebase ionic-framework leaflet angularfire


    【解决方案1】:

    附加onlocationfound 事件处理程序一次

    this.map.on("locationfound",e=>{
      ...
    });
    

    并在每次按下按钮时运行locate

    function CollectPixi() {
        this.map.locate({setView:true,maxzoom:30});
    }
    

    不要不要在每次点击按钮时都调用map.on('locationfound', ...)

    【讨论】:

    • 我需要用户在函数中的位置数据。然后怎么做。因为我用 e.lattitude e.longitude 进行定位
    猜你喜欢
    • 2017-07-03
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    相关资源
    最近更新 更多