Ext.data.FieldのConfig Option: convert
ストアを使ってリストのデータを構築している場合に、
データソースをそのまま使わず、加工してリストに見せたいというようなときに使えるらしい。
例えば以下のサンプルの場合、
元データは
["Hoge", "Moge"]
なんですが、リストに表示されるのは、
["convert/Hoge", "convert/Moge"]
になります。
Ext.setup({ onReady : function() { Ext.regModel('Person', { fields: [ { name: 'name', convert: function(v, rec) { return "convert/" + v; } } ] }); new Ext.List({ fullscreen: true, tpl: '<tpl for="."><div class="person">{name} {value}</div></tpl>', itemSelector: 'div.person', singleSelect: true, store: new Ext.data.Store({ model: 'Person', data: [ {'name': 'Hoge'}, {'name': 'Moge'} ], autoLoad: true }) }); } });
ちなみに上のサンプルはdataを直接コード上で指定していますが、
Reader経由で読むと、二回convertメソッドが呼ばれるというバグが、
Sencha Touch 0.95にあるようです。
再現コードをポストしてみました。(これがきっかけでこの記事ができてるわけですが)
OPEN-272 Ext.data.Reader.extractData() broken in sencha-touch-beta-0.94?