详细信息:
我正在获取html5
地理位置的数据;特别是经度和纬度。我正在尝试创建一个插件,任何人都可以在项目中调用并获得long和lat。
我已阅读此How to return response from an ajax call,但我想知道如何调用这些函数。
我放置了extjs
标记,即使我认为它更像是javascript
核心问题
JavaScript的:
Ext.define('Ext.ux.GeoLocation', {
alias: 'plugin.ux.geolocation',
constructor: function() {
console.log('called 1');
this.duh = 'yes';
this.init();
},
init: function () {
console.log('called 2');
navigator.geolocation.getCurrentPosition(this.test, this.test);
},
test: function(init) {
console.log('called 3');
this.duh = "amazing";
}
});
var geo = new Ext.ux.GeoLocation();
geo.test(); // this gets called twice though... incorrect?
控制台输出输出为:
called 1
called 2
called 3
called 3
这是一种不好的做法吗?还有其他解决方案吗?
答案 0 :(得分:2)
在您的类构造函数上,您将test
函数传递给navigator.geolocation.getCurrentPosition
。你知道其他功能是做什么的吗?最有可能是在内部调用测试。
你可以这样做:
var geo = new Ext.ux.GeoLocation();
console.log("middle");
geo.test();
然后你应该在两个“叫3”线之间看到“中间”。