2017-03-07 7 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-"が消えているだけですが、 「ID」の名前は、私がidPropertyで指定した名前ではない:私は今見る

{ 
     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」フィールドだったか、それがサーバから受信された、私がチェックファントム小道具を試してみましたが、それは常にfalseです。 –

+0

ここをクリックしてください: https://fiddle.sencha.com/#view/editor&fiddle/1rj5 コンソールで両方の場合に表示されているようにファントム== false –

+0

ああ、彼らはIDなしでリモートソースから来ていますか? –

関連する問題