2016-12-10 2 views
1

こんにちは、私はかなり興味深い問題に出くわしました。私はモデルを使った店を持っています。私のモデルは次のようになります。ExtJS 4.2 - ComboBoxは、フィールドの組み合わせであるモデルフィールドを表示していませんか?

Ext.define('HealOmni.model.device_model', { 
extend: 'Ext.data.Model', 

requires: [ 
    'Ext.data.Field' 
], 

fields: [ 
    { 
     name: 'device_id' 
    }, 
    { 
     name: 'device_name' 
    }, 
    { 
     name: 'device_id_real' 
    }, 
    { 
     name: 'sim_number' 
    }, 
    { 
     name: 'other_device_details' 
    }, 
    { 
     convert: function(v, rec) { 
      return rec.get('device_name') + " " + rec.get('device_id_real'); 
     }, 
     name: 'device_name_and_id' 
    } 
] 
}); 

してから、この店は、コンボボックスで使用され、コンボボックスには、次のようになります。

xtype: 'combobox', 
height: 30, 
itemId: 'deviceID', 
fieldLabel: 'Device ID', 
labelClsExtra: 'screenSharingFontLowerHalf', 
labelSeparator: ' ', 
displayField: 'device_name_and_id', 
queryMode: 'local', 
store: 'userDeviceManagementLoggedInDisplay', 
valueField: 'device_id_real' 

私はコンボボックスの表示フィールドとして組み合わせフィールドdevice_name_and_idを使用します。しかし、サイトをリロードしたとき、ComboBoxがフィールドを正しく表示できないように見えました。他のフィールドを使用する場合は、device_idとしましょう。うまく表示されます。それは表示されないコンビネーションフィールドだけで、理由はわかりません。

ストアを読み込んだ後にすべてのフィールドが表示され、コンボボックスにも値が記録されます。そのため、ComboBoxが正しく表示されない理由について混乱しています。

コンボボックスに「変換」フィールドを表示する方法を知っている人はいますか?

答えて

0

は、お使いのモデルの新しい分野に欠けているフィドルの下
https://fiddle.sencha.com/#view/editor&fiddle/1m9t

Ext.define('HealOmni.model.device_model', { 
    extend: 'Ext.data.Model', 
    fields: [{ 
     name: 'device_name_and_id', 
     convert: function (v, rec) { 
      return rec.get('device_name') + " " + rec.get('device_id'); 
     } 
    }] 
}); 
var storeRec = Ext.create('Ext.data.Store', { 
    model: 'HealOmni.model.device_model', 
    data: [{ 
     device_id: 1, 
     device_name: 'device one with id' 
    }, { 
     device_id: 2, 
     device_name: 'device two with id' 
    }] 
}); 

Ext.create('Ext.form.field.ComboBox', { 
    renderTo: Ext.getBody(), 
    valueField: 'device_id', 
    displayField: 'device_name_and_id', 
    store: storeRec 
}); 
関連する問題