我有一个简单的视图,左边有一个列表,还有一个容器,用于显示右边定义的详细列表项的详细信息:
Ext.define('app.view.activity.ListContainer', {
extend: 'Ext.Container',
alias: 'widget.activitylistcontainer',
requires: [
'app.view.activity.List',
'app.view.activity.ListDetail'
],
config: {
layout: {
type: 'hbox'
},
items: [
{
xtype: 'activitylist',
flex: 4
},
{
xtype: 'activitylistdetail',
flex: 5
}
]
}
});
加载activity.List
商店时,我希望activity.ListDetail
显示商店中第一个记录的详细信息。我的问题是我无法访问activity.ListContainer
,因为它未被识别为activity.List
的父级。
onActivityListInitialize: function(component, options){
var activityStore = Ext.create('app.store.Activity');
activityStore.on('load', function(store, records, successful, operation, eOpts){
var activityListHasContainer = component.hasParent(),
activityListContainer = component.getParent(),
activityListContainerUp = component.up('activitylistcontainer');
console.log(component, component.parent, activityListHasContainer, activityListContainer, activityListContainerUp);
});
component.setStore(activityStore);
}
console.log
的输出为Object, undefined, false, undefined, undefined
。我在component.parent
中添加了log
,因为当我检查对象时,有一个parent
属性,但无论出于何种原因,当undefined
显示时,它都会显示log
。
有人可以帮忙解释一下吗? activity.ListContainer
在Sencha中不被视为activity.List
的父级吗?或者它是我的应用程序中的其他东西搞砸了吗?如果有帮助,activity.ListContainer
位于navigationview
答案 0 :(得分:0)
在触发activity.ListContainer
事件时,activity.ActivityList initialize
不存在。我的解决方案是将此方法移至activity.ListContainer initialize
事件。