2012-06-12 33 views
0

我想定義存儲companyList的data.store,因爲我想稍後重新使用此存儲。ExtJs4 MVC,組合框的data.store

tbar: Ext.create('Ext.Toolbar', { 
    items: [ 
     { 
     xtype : 'combo', 
     name : 'companyCode', 
     editable : false, 
     valueField : 'companyCode', 
     displayField : 'companyName', 
     triggerAction : 'all', 
     store: Ext.create('Ext.data.Store', { 
       fields: ['companyCode', 'companyName'], 
       proxy: { 
       type: 'ajax', 
       url: '/Reports/GetCompanyList/', 
       reader: 'json', 
       actionMethods: { 
        read: 'POST' 
       } 
       }, 
       autoLoad:true 
      }) 

上面的代碼是工作,我想把商店放到我的商店文件夾下的應用程序文件夾。

店/ CompanyList_store.js

Ext.define('App.store.CompanyList_store', { 
    extend: "Ext.data.Store", 
    fields: ['companyCode', 'companyName'], 
    proxy: { 
     type: 'ajax', 
     url: '/Reports/GetCompanyList/', 
     reader: 'json', 
     actionMethods: { 
      read: 'POST' 
     } 
    }, 
    autoLoad: true 
}); 

,我在控制器添加此店。

Ext.define("App.controller.InventoryReport", { 
    extend: "Ext.app.Controller", 
    stores: ['Inventory_store', 'CompanyList_store'], 
    . 
    . 

並添加此店組合框店,

tbar: Ext.create('Ext.Toolbar', { 
    items: [ 
     { 
     xtype : 'combo', 
     name : 'companyCode', 
     editable : false, 
     valueField : 'companyCode', 
     displayField : 'companyName', 
     triggerAction : 'all', 
     store: 'CompanyList_store' //it does not work. 

我做錯了嗎?如果有人知道,請諮詢我。

回答

1

我想你忘了在應用程序文件中包含所有商店。

應該是這樣的:

Ext.application({ 
    appFolder: ... 
    controllers: [your controllers here], 
    stores: [your stores here] 
}); 

如果你把不同的文件夾中存儲(以內線應用程序之間共享),請確定包括以下內容: Ext.Loader.setPath([namespace], [path to the folder with stores]