2011-04-17 64 views
1

型号:ExtJS的4 Beta 3的模式将无法加载数据从JSON文件

Ext.ns('Workout.Models.user'); 
Ext.regModel('User', { 
    fields: [{ 
     name: 'member_id', 
     type: 'int' 
    }, { 
     name: 'first_name', 
     type: 'string' 
    }, { 
     name: 'last_name', 
     type: 'string' 
    }, { 
     name: 'username', 
     type: 'string' 
    }, { 
     name: 'password', 
     type: 'string' 
    }, { 
     name: 'dob', 
     type: 'date', 
     dateFormat: 'Y-m-d' 
    }, { 
     name: 'email_address', 
     type: 'string' 
    }, { 
     name: 'is_active', 
     type: 'int' 
    }], 
    proxy: { 
     type: 'ajax', 
     format: 'json', 
     url: '../../_dev/json_fixtures/users.json', 
     reader: { 
      type: 'json', 
      root: 'users' 
     }, 
     root: 'users' 
    } 
}); 

的商店:

Ext.ns('Workout.Stores'); 
Workout.Stores.user = new Ext.data.Store({ 
    model: 'User', 
    storeId : 'Workout.Stores.user', 
    sorters: [ 
     'last_name', 
     'first_name', 
     'member_id' 
    ], 
    autoLoad: true 
}); 

网格:

Ext.ns('Workout.User'); 
Workout.User.grid = new Ext.grid.Panel({ 
    store: 'Workout.Stores.user', 
    columns:[{ 
     text: 'Created At', 
     dataIndex: 'created_at' 
    }, { 
     text: 'First Name', 
     dataIndex: 'first_name' 
    }] 
}); 

JSON文件

{ 
    "users":[{ 
     "created_at":"2011-04-01 14:13:34", 
     "member_id":"14453", 
     "first_name":"Jemima", 
     "last_name":"Petersen", 
     "username":"jpeterson", 
     "password":"TDW29HOH7WY", 
     "dob":"1960-07-03", 
     "email_address":"[email protected]" 
    }] 
} 

当我加载我的HTML页面时,网格是空的。但是,如果我通过data参数将原始数据提供给商店,则它会加载。如果我通过控制台手动拨打User.load(),则不会发生任何事情。如果我拨打User.load()并传入有效的JSON对象,则不会发生任何事情。

有什么我失踪/不正确?

回答

2

您已经完成了所有预计设置网格面板的高度。您需要设置高度以显示记录。以下是我会添加到您的网格面板的配置:

height: 300 

现在,除了这一点,你有一个像你有没有在您的用户模型中定义created_at其他问题。如果您打算在网格中显示该值,则还需要更新模型。

+0

工作就像魅力。谢谢! +1和答案! – 2011-04-17 14:33:12

0
Ext.define(
'BK.store.Categories' 
, {  extend  : 'Ext.data.Store' 
     , model  : 'BK.model.Category' 
     , autoload : true 
     , proxy  : {  type : 'ajax' 
           , format : 'json' 
           , root : 'results' 
           , api  : { read : 'data/data1.json' } 

           , reader : new Ext.data.JsonReader({  type   : 'json' 
                , root   : 'results' 
                , successProperty : 'success' 
                }) 
          } 
    } 

);

当我使用在店里硬编码的数据,它的工作原理确定(所以模型,视图,控制器都行),只要我使用它的行为就好像自动加载的是假代理,没有净的请求