2011-11-29 2 views
3

, 내가 같이 인스턴스화 상점을 발견했다 :EXT JS 스토어의 프록시 : 독자와 작가 문서에서

 
var store = Ext.create('Ext.data.Store', { 
    autoLoad: true, 
    model: "User", 
    proxy: { 
     type: 'ajax', 
     url : 'users.json', 
     reader: { 
      type: 'json', 
      root: 'users' 
     } 
    } 
}); 

프록시는 하나 url 설정이 있습니다. 나는 특히 독자들에게 관심이있다. 독자는 데이터 교환 형식 (json)과 루트 ('users')를 지정합니다. 이제 상점이 : autoLoad = true으로 설정된 경우 EXT JS는 지정된 URL에 Ajax 연결을 수행하여 read으로 만듭니다. 자, 어떻게 내가 위의 동일한 저장소에 대한 작가를 구성합니까? 누군가 나에게도 이것에 대해 말해줍니다 : 나는 작가를 구성하면 프록시에 지정된 것과 동일한 URL을 사용합니까? 위에 제시 한 코드의 맥락에서 작가와 독자에 대해 여전히 혼란 스럽다. 위의 예를 사용하여 독자와 작성자 설정을 표시하도록 도와 줄 것이다. 고맙습니다.

답변

9

내 앱에서 독자, 작가 및 API와 저장소의 예는 다음과 같습니다

Ext.define('MyApp.store.Tasks', { 
    extend: 'Ext.data.Store', 
    model: 'MyApp.model.Task', 
    sorters : [{ 
     property: 'idx', 
     direction: 'ASC' 
    }], 
    autoSync:true, 
    proxy:{ 
     type: 'ajax', 
     reader: { 
      type: 'json', 
      root: 'data' 
     }, 
     writer: { 
      type: 'json', 
      writeAllFields : false, //just send changed fields 
      allowSingle :false  //always wrap in an array 
      // nameProperty: 'mapping' 
     }, 
     api: { 
       // read: 
       create: 'task/bulkCreate.json', 
       update: 'task/bulkUpdate.json' 
       // destroy: 
     } 
    }, 
    listeners : { 
     write: function(store, operation, opts){ 
      console.log('wrote!'); 
      //workaround to sync up store records with just completed operation 
      Ext.each(operation.records, function(record){ 
       if (record.dirty) { 
        record.commit(); 
       } 
      }); 
     }, 
     update:function(){ 
      console.log('tasks store updated'); 
     } 
    } 
}); 
+0

이벤트가 시작되지 않는다 "쓰기"때 자동 동기화 = false입니다. 예상되는 동작입니까, 아니면 버그입니까? –

+0

수정 됨 : 세션을 사용 중이므로 이벤트를 트리거하려면 store.sync()가 필요합니다. –

2

사실 당신은 정확합니다. 독자와 동일한 URL을 사용합니다.

프록시는 클라이언트의 모델/저장소와 다른 쪽의 서버 코드 사이의 조정자입니다. 독자는 데이터를 읽는 데 사용되며 서식 지정, 루트 지정 등의 작업을 구성 할 수 있습니다. 작성자는 서버에 대한 저장/업데이트 요청을 담당합니다.

확인이 문서 : 여기 http://edspencer.net/2011/02/proxies-extjs-4.html