我还不熟悉sencha。
我有查询。我们如何在代码之后定义如下所述的变量。
我在下面写一个senario:
Ext.application({
name: 'Sencha',
requires: ['Ext.device.Geolocation'],
launch: function() {
var panel = Ext.create("Ext.Panel", {
fullscreen: true,
items: [
{
html: 'Finding Location...'
}
]
});
Ext.device.Geolocation.getCurrentPosition({
success: function(position) {
var coordinates = position.coords;
var location = "Longitude " + coordinates.longitude + " Latitude " + coordinates.latitude;
panel.setHtml(location);
},
failure: function() {
console.log('something went wrong!');
}
});
}
});
我希望变量'coordinates'在'success:function(position)'之外和启动函数内部可用。
我们如何实现这一点。
答案 0 :(得分:1)
只需在另一个范围内定义回调方法,如此
Ext.application({
name: 'Sencha',
requires: ['Ext.device.Geolocation'],
launch: function() {
var panel = Ext.create("Ext.Panel", {
fullscreen: true,
items: [
{
html: 'Finding Location...'
}
]
});
Ext.device.Geolocation.getCurrentPosition({
success: onPositionSuccess,
failure: function() { console.log('failed') },
scope: this // added scope for the callback
});
},
coordinates: null, // to prevent undefined the property get defined with null
onPositionSuccess: function(position) {
this.coordinates = position.coords;
var location = "Longitude " + coordinates.longitude + " Latitude " + coordinates.latitude;
panel.setHtml(location);
}
});
您现在可以访问应用程序中的coordinates
属性。