[英]Destroy method in form panel
我正在使用Cordova API捕獲地理區域,然后成功地將當前位置呈現在Google地圖上。
當我第一次使用get_position時,我將呈現如下形式:
var geo_panel = new Ext.form.Panel({
useCurrentLocation: true,
fullscreen: true,
layout: 'fit',
items: obj
});
其中obj是定義為的工具欄
toolbar = Ext.create('Ext.Toolbar', {
docked: 'top',
alias : 'widget.geolocationToolbar',
ui: 'light',
defaults: {
iconMask: true
},
items: [
{
xtype: 'button',
ui: 'back',
text: 'Back',
// destroy form.Panel overlay and return to tree store view
handler: function() {
geo_panel.destroy();
}
},
{
xtype: 'button',
itemId: 'stopWatch',
text: 'StopWatch',
iconCls: 'arrow_right',
iconMask: true,
handler: function() {
EvaluateIt.utils.UtilityService.clear_watch();
}
},
{
xtype: 'selectfield',
itemId: 'accuracy',
autoSelect: false,
placeHolder: 'accuracy',
options: [
{text: ''},
{text: 'high', value: 5},
{text: 'med high', value: 10},
{text: 'medium', value: 15},
{text: 'med low', value: 20},
{text: 'low', value: 66}
],
listeners: {
change: function(field, value) {
if (value instanceof Ext.data.Model) {
value = value.get(field.getValueField());
}
console.log(value);
// set accuracy as config variable
EvaluateIt.config.accuracy = value;
}
}
},
{
iconCls: 'home',
handler: function() {
google_map.getMap().panTo(position);
}
}
]
});
這在我的表單面板中呈現得很好。
然后,我的onSuccess方法傳遞一個參數,以將google_map添加到geo_panel表單面板中。 我已經嘗試了geo_panel.add(toolbar,google_map),它可以工作,但是當我點擊上方工具欄中的“返回”按鈕時,我遇到了一個問題:
{
xtype: 'button',
ui: 'back',
text: 'Back',
// destroy form.Panel overlay and return to tree store view
handler: function() {
geo_panel.destroy();
}
},
我必須單擊兩次:第一次銷毀google_map,然后第二次銷毀工具欄。 這是非常不希望的行為。 我嘗試銷毀geo_panel中的每個項目,但是這樣做還有其他怪異的事情。 這就像有多個geo_panel實例一樣。 有任何想法嗎?
我知道了:我正在創建我的geo_panel的兩個實例。 我重構了代碼,現在一切都按需工作了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.