2017-03-07 1 views
0

ExtJs (6)에 의해 추가되고 생성 된 모델의 "id"필드를 확인하는 방법 또는 실제로 백엔드에 존재합니까?생성 된 ExtJs 모델 ID가 확인 되었습니까?

나는 각종 데이터를 가져 오기위한 그리드 및 JSON 저장소를 사용하여 생성 열을 그리드 동적으로 다음과 같이 오전 : 여전히

 store.load(function(records, operation, success) { 
      if(success) 
      { 
      //console.log('Store loaded records',records,store); 
      if(records.length) 
      { 
       var columns = _.map(records[0].data,function(value, key){ 
       return {text:key,dataIndex:key}; 
       }); 
       me.reconfigure(store,columns); 
      }else{ 
       me.reconfigure(store,[{text:"no records",dataIndex:"no records"}]); 
      } 
      } 
      else 
      console.log('Store NOT loaded'); 
     }); 

내가 자동으로 생성 된 필드 "ID"를 표시하지 않지만, 필요 그것이 '진짜'라면 그것을 표시하십시오.

사용자 정의 idProperty를 사용하여 상점의 모델 특성을 정의하려고 시도했지만이 경우 작동하지 않는 것처럼 보입니다. 생성 된 id 값에서 텍스트 접두어 "extModelxxx-"가 사라지면 효과가 있지만 효과는 여전히 있습니다. 내가 idProperty에 규정 된 "ID"이름이 아닌 이름 : 내가 볼

{ 
     reference:"dataDisplay", 
     xtype:"grid", 
     store:{ 
     type:"json", 
     proxy:{ 
      type: 'ajax', 
      url: '',//will be set dynamically 
      reader: { 
      type: 'json', 
      rootProperty: 'value' 
      }, 
     }, 
     model: Ext.create("Ext.data.Model",{ 
      //fields:["extJsAutoId"],//no effect 
      idProperty:"extJsAutoId",//null,//null does not work too 
     }), 
     }, 
     columns: [], 
     listeners:{ ....... 

유일한 방법은 지금 혼자 JSON을로드하고 배열 저장소를 사용하는 것입니다. https://fiddle.sencha.com/#view/editor&fiddle/1rj5

당신이 아래의 스크린 샷에서 보는 바와 같이 - 그것은 여기에 도움이 질수 있도록 "팬텀"속성은 항상 false입니다 :

는이 질문에 대한 바이올린을 만들어

enter image description here

답변

0

당신이 할 수있는 레코드의 phantom 특성을 확인하십시오. 이는 서버가 ID를 할당하지 않았 음을 의미합니다.

당신은이 열 렌더러를 사용하여 얻을 수 :

{ 
    text: 'ID', 
    dataIndex: 'id', 
    renderer: function(v, meta, rec) { 
     return rec.phantom ? '' : v; 
    } 

} 
+0

내가 체크 팬텀 소품을 시도하지만 거짓 항상, 상관없이 'ID'필드가 발생하거나 서버에서 수신이었다. –

+0

여기보세요 : https://fiddle.sencha.com/#view/editor&fiddle/1rj5 두 경우 모두 콘솔에서 볼 수 있습니다. phantom == false –

+0

오, 그들은 id가없는 원격 출신인가요? –