【发布时间】:2013-05-14 11:03:22
【问题描述】:
在下面的代码中,只有在从 Gmaps 导航器上的调用中获得 valuea 后,我才需要渲染视图。 在我拥有纬度和经度之前,我无法渲染视图。 在这里关注一些答案,我遇到了错误
Object [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 而发生的,并且在渲染功能启动之前这些都没有填充。 有没有一种有效的方法可以等待这些结果返回?
【问题讨论】:
-
你试过
$.when(this.beforeRender).then(this.afterRender);
标签: javascript jquery backbone.js jquery-deferred .when