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次我得到输出3次。
HTML:
<button ion-button class="button-collectpixi" (click)="CollectPixi()" block>Collect Pixi!</button>
根据答案
this.map.locate({setView:true,maxzoom:30}).on("locationfound",e=>{
}
是重复的原因。但我需要在collectpixi函数中使用e.latitude e.longitude值。我的意思是我获取用户位置数据并在collectpixi数据中用它做一些计算。
答案 0 :(得分:0)
附加this.map.on("locationfound",e=>{
...
});
事件处理程序一次:
locate
每次按下按钮时都会运行function CollectPixi() {
this.map.locate({setView:true,maxzoom:30});
}
:
map.on('locationfound', ...)
每次单击按钮时,不都会调用.col-
。