我有一个带有form.Panel形式的应用程序,当用户按下搜索时,它会在tab.Panel中显示结果。这一切都正常,标签第一次正常工作。我有一个按钮,允许用户返回到form.Panel并输入不同的信息。用户再次按下搜索,一切都显示正常,但是如果您从初始选项卡更改然后尝试返回到它,则不会显示任何内容。我在控制台中没有错误只是一个空面板,最后是标签栏。有人知道这可能发生的任何原因吗?
列表项目点按控制器:
Ext.define('FirstApp.controller.Details', {
extend: 'Ext.app.Controller',
config: {
refs: {
placesNavView:'placesContainer',
},
control: {
'placesContainer places list':{
itemtap:function(list,index,target,record){
var ref = record.get('reference');
var name = record.get('name');
console.log(name);
console.log(ref);
// Instantiate a "please wait" message
Ext.Viewport.setMasked({xtype:'loadmask', message:'Please Wait...'});
var proxy = {
type:'ajax',
url:'https://maps.googleapis.com/maps/api/place/details/json?reference='+ref+'&sensor=true&key=',
reader:{
type:'json',
rootProperty:'result'
}
}
Ext.StoreMgr.get('Details').setProxy(proxy);
Ext.StoreMgr.get('Details').load();
console.log(proxy);
Ext.getCmp('placesContainer').push({
xtype: 'details',
title: name
});
Ext.Viewport.setMasked(false);
}
}
}
}
});
更新
Ext.define('FirstApp.view.PlacesContainer',{
extend:'Ext.NavigationView',
xtype:'placesContainer',
id:'placesView',
config:{
title:'Places',
iconCls:'organize',
items:[
{
xtype:'places'
}
]
}
})
答案 0 :(得分:0)
可能是因为您对id: placesView
进行了硬编码,请尝试使用itemId
。
xtype:'placesContainer',
itemId:'placesView'
为什么要itemId
使用id
?
可以使用itemId作为获取对a的引用的替代方法 没有对象引用时的组件。而不是使用 使用Ext.getCmp的id,使用带有Ext.Container.getComponent的itemId 将检索itemId或id。 因为itemId是一个索引 容器的内部MixedCollection,itemId的范围是本地的 容器 - 避免与Ext.ComponentManager的潜在冲突 这需要一个唯一的ID。