2013-06-12 2 views
0

방금 ​​SenchaCmd에서 Sencha Touch 2.2.1의 새 프로젝트를 설명했습니다. 이것이 내 첫 Sencha 프로젝트이기 때문에 나는 꽤 기본적인 것들로 문제를 겪고있다. 미리 정의 된 저장소를로드하기 위해 Ext.data.StoreManager에 액세스하려고 시도하지만 Ext.data.StoreManager은 정의되지 않았습니다.이 파일에서는 로더가이 파일을로드하지 않았기 때문에 이음새가 없습니다. 나는 Ext.require('Ext.data.StoreManager');을 추가하여 문제를 해결하려했지만 운이 없다.Sencha Touch, StoreManager가 정의되지 않았습니다.

프로젝트는 주로 SenchaCmd가 모델, 상점 및 일부 변경 사항을 추가하여 app/views/Main.js으로 초기화 한 것입니다.

아이디어가 있으십니까? 파일을 비동기 적으로뿐만 아니라 requires 블록

Ext.define('DRL.view.Main', { 
    extend: 'Ext.dataview.List', 
    xtype: 'main', 
    requires: [ 
     'Ext.data.Store' 
    ], 
    config: { 
     items: [{ 
      xtype: 'list', 
      itemTpl: '{teamName}', 
      store: Ext.data.StoreManager.lookup('teams') 
     }], 
     listeners: { 
      itemtap: function(self, index, target, record, e, eOpts) { 

      } 
     } 
    } 
}); 

답변

1

Ext.require로드 :

다음은 내 Main.js입니다. Ext.define 전에 StoreManager를로드하려면 클래스 정의 앞에 Ext.syncRequire을 사용해야합니다.

그러나 동일한 최종 결과를 얻는 더 좋고 더 깨끗한 방법이 있습니다.

응용 프로그램/저장/TeamStore.js : 예를 들어

Ext.define('DRL.store.TeamStore', { 
    extend: 'Ext.data.Store', 
    model: 'DRL.model.Team' // change your model 
    ... 
}); 

응용 프로그램/매장/Main.js

Ext.define('DRL.view.Main', { 
    ... 
    store: 'DRL.store.TeamStore' 
    ... 
}); 

그런 Ext.applicationDRL.store.TeamStoreDRL.view.Main을 추가하는해야 app.js에있다.