如何动态加载额外的数据为LeafletJS弹出加载
How to dynamically load extra data for LeafletJS Popup on load
我正在升级一个JSF页面,我有一个在地图上显示数据的OSM基图和最新的稳定传单发布的标记和功能。
对于每个标记,我都有一些元素的基本信息,这些信息是在创建标记时加载的。然而,有一些数据需要显示可用的天数,我不想在用户实际单击弹出窗口之前加载,因为我希望它创建一个比必要的大得多的负载。
是否有一种方法可以使用承诺首先加载所需的额外数据,然后在用户单击后打开弹出窗口?
这个问题的答案非常简单…
从创建标记开始:
function onMapClick(e){
dataPromise = new Promise(function(resolve,reject){ /*grab your data here*/ });
dataPromise.then(function(result){
popupPromise = new Promise(function(resolve,reject){
e.target.closePopup();
e.target.unbindPopup();
newPopup = createPopupFromServerData(result);
resolve(newPopup);
});
});
popupPromise .then(function(result){
e.target.bindPopup(result).openPopup();
});
}
marker.bindPopup("Loading element data, please wait..."); //this can include anything
marker.on('click', onMapClick);
这是正确打开一个新弹出框所需要的第二个承诺,但它却逃过了我两天。
相关文章:
- 正在等待呈现图表,直到加载数据为止
- ng绑定和ng href问题.ng href未从控制器加载数据
- 单击按钮时加载数据
- 在reactjs组件中预加载数据
- Highcharts可以从服务器加载数据,但不能更新
- AngularJS promise在加载数据之前得到解决
- 在Knockout JS中搜索从DB加载数据的项目
- 如何在angular js中使用$emit后重新加载数据
- 构建多个图表时,HighCharts加载数据的速度较慢
- 加载初始网站后在后台加载数据
- ExtJS网格未从Ext.data.XmlStore加载数据
- 数据表 AJAX 筛选器重新加载数据
- select2 使用 AJAX 加载数据不能选择任何选项
- 在 Metro 风格应用中启动时加载数据
- 需要帮助使用 AJAX 和其他一些东西加载数据
- Vue 不加载数据
- 向右滚动加载数据
- 为SEO的数据绑定JS预加载数据
- mysql循环-预加载数据
- 无法使用JSON加载数据表