, ExtJS , , , ExtJS 5.
.
render ( networkStore) ?
, , / ( API /). , frStore ( ). convert / render.
, ().
ExtJS , , qtip.
, networkStore (autoload: true), , , , remoteFilter .
frStore , frStore FrModel .
Ext.define('FrModel', {
extend: 'Ext.data.Model',
fields: [
{
name: 'qtip',
type: 'string',
convert: function (value, record) {
var result = '';
if (record.get('rendered_source').match(/[-]+/i)) {
result = 'data-qtip="'
+ networkStore(record.get('source')) + '"';
}
return result;
},
depends: ['source', 'rendered_source']
},
{
name: 'rendered_source',
type: 'string',
convert: function (value, record) {
var newValue = convertObjValue(record.get('source'));
return newValue;
},
depends: ['source']
}
]
}
render :
{
text : 'Source',
dataIndex : 'rendered_source',
renderer : function(value, metaData, record) {
metaData.tdAttr = 'data-qtip="'
+ record.get('qtip') + '"';
}
return value;
}
},
networkStore, : ( / , )
Ext.create('Ext.data.Store', { // using Ext.create is better
model : 'networkModel',
storeId: 'networkStore', // registering store in Ext.data.StoreManager in order to get later this store by Ext.getStore(<store_id>)
autoLoad : true,
proxy : {
type : 'ajax',
url : networkObjsURL, // we load all records but I mentioned earlier that you can change this
reader : {
type : 'json',
idProperty : 'objValue'
},
}
});
peId netowrkModel, .
Ext.define('networkModel', {
extend : 'Ext.data.Model',
fields : [
{
name: 'objectValue'
},
{
name: 'peId',
type: 'int'
}
]
});
- networkStore:
function networkStore(value) {
var store = Ext.getStore('networkStore');
var records = store.query('peId', value, false, true, true);
var hoverOutput = "";
if (records.length > 0) {
records.each(function(item) {
hoverOutput += item.get('objectValue') + "</br>";
});
}
console.log(hoverOutput);
return hoverOutput;
}
PS. .
IMO . .
, , , .
FrModel NetworkModel peId, networkStore qtip convert .