今天在做一个列表的功能,列表的每一项均可以点击,先试了一下最简单的,单击子项时弹出一个提示,郁闷的是连这个最简单的都出不来,不是因为listener写的不对,因为在点击item项时,该项很明显的没有任何反应,就跟点了页面上的空白位置样,连颜色都没有改变下,实际上,list的item在点击时会有颜色的变化!
百思不得其解,打开另一个类似的页面一行行比照,一直以为是config哪里配置的错误导致的,查了半天,几乎改的一模一样了还是不行,最后只剩initialize方法里的区别了,
initialize: function(){
var me = this,
store = me.getStore();
if (!store._loaded) {
var sessionstorage = window.sessionStorage,
param = {'query.loginName':sessionstorage.getItem('loginName'),
'query.loginPwd':sessionstorage.getItem('loginPwd')
};
store.getProxy().setExtraParams(param);
store.loadPage(1, {callback: function(record, operation, success){
store._loaded = true;
}, scope: this});
}
store.on('clear', function(st){
st.getProxy().setExtraParams('');
var paging = me.getPlugins()[1];
paging.getLoadMoreCmp().setHidden(true);
me.setEmptyText('请先登录');
me.refresh();
});
}
突然想到,会不会是没有callParent的缘故呢?在initialize方法首行加上this.callParent()试了下,果真如此,达到想要的效果了!
不够细心啊,就这么一行代码导致这么大的错误,弄得我查了2、3个小时!各位猿猿也要注意下,不要犯类似的错误,extend 某一个组件时,一定不要忘了callParent!