问题描述
ShowUserInfo :function(){Ext.create("MyExtJS.view.user.ShowUser");var myStore=Ext.create('MyExtJS.store.UserStore');//alert(myStore.data.number);alert(myStore.getCount());}aler结果是0,用上边的myStore.data.number是undefined,为什么取不到呢?? Ext.define('MyExtJS.store.UserStore', {extend : 'Ext.data.Store',model : 'MyExtJS.model.UserModel',autoLoad : true,proxy:{type:'ajax',url:'system/user!queryUserById?uid='+uid,reader:{type:'json',root:'anotherUserList'}}, remoteSort:true});model:Ext.define('MyExtJS.model.UserModel', {extend : 'Ext.data.TreeModel',fields : [{name : 'id',mapping : 'id'}, 'name', 'number', 'password','sex', 'birtnday','phone', 'address','lastLogTime','logTimes','email','remarks','majorAndClass_id','department_id','role_id']});前台返回结果:
解决方案
首先 EXTJS 设计 是“事件驱动”你创建一个store,如果你没有load是不会加载数据的,即使你这样写store.load(); or autoLoad:truealert(store.getTotalCount());打印的肯定 是 0,因为数据还没有加载完成。你只能依据它的事件来处理,如:store.load();//当数据加载完成时store.on('load',function(th,s){ console.log(store.GetCount());});