我正在尝试使用knockout构建一个应用程序,以在谷歌地图上显示一些位置详细信息和标记 我通过检查是否' navigator.geolocation'来根据用户位置显示谷歌地图。是真的。如果是,我正在调用' navigator.geolocation.getCurrentPosition()'显示以' position.coords.latitude'检索到的纬度为中心的地图的方法。
var fooBarApp = (function(){
...
initMap: function() {
...
}
return {
lat: lat,
long: long
}
})();
检索坐标并显示地图后,我想显示地图标记&对另一个api进行ajax调用并显示结果 - 我在viewModel中处理所有这些结果。所以这就是我的viewModel的样子:
var viewModel = new function() {
self.fetchList = function() {
//ajax call to api using fooBarApp.lat & fooBarApp.long
}
self.fetchList() // method call to display results on page load
}
目前在页面加载时,fetchList ajax调用使用未定义的lat,long值进行 - 因为在触发ajax调用时不会检索值。在单击DOM元素时调用fetchList时,ajax调用将成功触发。我应该如何重构我的代码,以便在页面加载时调用fetchList,只有在检索到坐标之后?另外,是在viewModel中移动initMap逻辑并使lat long observables成为一个好主意吗?
答案 0 :(得分:0)
如果我理解正确,你想进行ajax调用并使用该响应放置标记?您应该调用该方法将标记放在ajax调用的回调中。