2010-03-05 2 views
0

모노레일 응용 프로그램에서 extjs를 사용하고 있습니다. JsonStore를 사용하여 컨트롤러에 데이터를 다시 저장합니다. 나는 제대로 읽고, 업데이트하고 삭제했다. 그러나 내가 만든 응답에 대한 형식을 다시 지정하는 방법을 알아낼 수 없습니다. 현재 방화 광에서 다음과 같은 오류가 발생합니다.레코드가 성공적으로 생성되면 Extjs 예외가 "유효하지 않은 원격 데이터로 실현되었습니다."

uncaught exception: Ext.data.DataReader: #realize was called with invalid remote-data. Please see the docs for DataReader#realize and review your DataReader configuration.

나는이 오류를 의미합니다. 누구든지 포인터가 있으십니까? 아래의 코드 관련 비트 :

var proxy = new Ext.data.HttpProxy({ 
     api: { 
      read: '../foo/bar.rnr', 
      create: '../foo/CreateBar.rnr', 
      update: '../foo/UpdateBar.rnr', 
      destroy: '../foo/DeleteBar.rnr' 
     } 
    }); 

    var writer = new Ext.data.JsonWriter({ 
     encode: true, 
     writeAllFields: true, 
     listful: true, 
     destroyRecord: function(rec) { 
      return this.toHash(rec); 
     } 
    }); 


    var store = new Ext.data.JsonStore({ 
     autoLoad: true, 
     autoSave: false, 
     url: '../foo/bar.rnr', 
     method: 'get', 
     baseParams: { Id: pageParameters.Id }, 
     proxy: proxy, 
     writer: writer, 
     id: 'Id', 
     fields: [ 
      { name: 'Id', type: 'int' }, 
      { name: 'Name', type: 'string' }, 
      { name: 'Note', type: 'string', defaultValue: null } 

     ] 
    }); 

나의 현재 반응은 다음과 같다, 그러나 이것은 많은 시행 착오 후에이다, 그래서 prolly 묶였던됩니다.

{"success":true,"message":"OK!","undefined":[]} 

답변

2

반환 json 개체에 레코드를 반환해야합니다.

내 책인 Ext JS in Action에서 crud 작업에 데이터 기록자를 사용하는 방법을 보여주는 다음 예제로 이동하십시오.

http://extjsinaction.com/examples/chapter08/usingWriterWithHttpProxy.html

오른쪽 새로운 레코드를 삽입합니다. Firebug에서 Ajax req를 관찰하면 작동하는 것을 볼 수 있습니다.

+0

정확히 내가 감사해야 할 부분이 있습니다. book == purchased.now – NotMyself

+0

대답은 * 그리고 * 판매! –