2012-04-23 37 views
0

有2個Ext.data.models(嵌套):EXTJS XML模型的hasMany協會

Ext.define('App.Model.Permission', { 
    extend: 'Ext.data.Model', 
    belongsTo: 'Roles', 
    fields: [{ name: 'Controller', mapping: '@Controller' }, 'Ptype'],  
}); 

    Ext.define('App.Model.Roles', { 
    extend: 'Ext.data.Model', 
    idProperty: 'Id', 
    hasMany: { model: 'Permission', name: 'Permissions', associationKey: 'Permissions' },  
    fields: [{ name: 'Id', mapping: '@Id' }, 'Name', 'Description'] 
}); 

商店對象 - Ext.store xml文件的

rolesstore = Ext.create('App.Data.Lstore', { 
      model: 'App.Model.Roles', 
      autoLoad: false, 
      proxy: { 
       type: 'ajax', 
       url: '/Cache/roles.xml', 
       reader: { 
        type: 'xml', 
        record: 'Role'     
       } 
      } 
     }); 

部分數據加載

<?xml version="1.0" encoding="utf-8"?> 
    <Roles> 
     <Role Id="11111111-1111-1111-1111-111111111111"> 
     <Usercreate>430d4bda-4c0c-4e5a-a443-b7091ef1e98c</Usercreate> 
     <Dateedit>01.01.0001</Dateedit> 
     <Name>Администратор</Name> 
     <Description>Роль администратора</Description> 
     <Permissions> 
      <Permission Controller="PurchaseController"> 
      <Ptype>2</Ptype> 
      </Permission> 
      <Permission Controller="ContractController"> 
      <Ptype>2</Ptype> 
      </Permission> 
      <Permission Controller="PlanController"> 
      <Ptype>2</Ptype> 
      </Permission> 
      <Permission Controller="ApprovalController"> 
      <Ptype>2</Ptype> 
      </Permission> 
      <Permission Controller="AdminController"> 
      <Ptype>2</Ptype> 
      </Permission> 
      <Permission Controller="DictionaryController"> 
      <Ptype>2</Ptype> 
      </Permission> 
     </Permissions> 
     </Role> 
</Roles> 

雖然lo將數據添加到只存儲'角色'模型存儲沒有嵌套'權限'模型?

哪裏出錯? 謝謝。

回答

0

它,只是不這樣工作。指南說,你必須顯式調用嵌套關聯Roles.Permissions()。 請參閱guideexample