在下面的代码中,只有在从 Gmaps 导航器上的调用中获得 valuea 后,我才需要渲染视图。在我拥有纬度和经度之前,我无法渲染视图。在这里跟随一些答案我被错误困住了
对象 [object global] 没有方法 'afterRender 感谢您的任何建议。
initialize: function() {
$.when(this.beforeRender).then(function(){
this.afterRender();
});
},
beforeRender: function () {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(this.onSuccessUpdatePos,
this.onFailUpdatePos);
} else {navigator.geolocation.getCurrentPosition(this.onSuccessUpdatePos,
this.onFailUpdatePos);
}
},
afterRender: function () {
this.render();
},
更新:我照我说的做了,而且似乎尊重了 BeforeRender-> render-> afterRender 的顺序。我还在函数 Initialize() 中添加了所有初始化逻辑。问题在于,将函数按顺序排列似乎并不能确保函数 render() 一旦获得结果就会启动。
我也试过了
$.when(this.beforeRender).then(that.render);
正如向我建议的那样,但仍然不断给我错误。似乎 beforeRender 没有启动。不断向我展示的错误是
Uncaught SyntaxError: Unexpected token u
我认为这是由于 sessionStorage 和 localStorage 而发生的,并且在启动渲染功能之前没有填充这些内容。有没有一种有效的方法来等待这些结果返回?