Ext JS 4允许用户直接将extraParams添加到一个链接,类似如下代码:
Ext.Ajax.extraParams = { foo: "bar" };
Ext.Ajax.setExtraParams({ foo: "bar" });
Ext JS 5的数据包变化让灵活的数据更易于工作了。然而,如果你正在使用Ext JS 4,那要实现类似的灵活性,就需要使用几个鲜为人知的框架块来实现。
开发人员一直以来都无法控制从服务器返回到应用程序的数据字段有哪些。如果你是工作于数据会从多个数据源返回数据的环境,这很可能是一个常见的挑战。数据签名可能频繁发生改变,而且数据拥有者不会去通知数据签名已经改变。用户经常静态的设置模型(model)/存储(store)(或网格中的列)的字段。然而,你可以利用metachage事件以及返回的metaDaata键来让数据变得灵活。
注意:metachange事件目前只会被JSON读取器(reader)触发。
如果服务器响应包含了在读取器的metaProperty配置项设置的metaData键,那数据就可从metaData响应中获取。任何传递过来的数据记录的根就可以在这里被定义为存储的字段。如果记录对象是通过metaData对象传递的,那么字段就被读取器自动应用到存储/模型。
与响应相关的信息也会传递回响应中,例如,一个关联存储的数组列也可以被传递,且可使用存储的metachange事件来动态应用。
当metaData被传递回响应,就会触发metachange事件,这时,处理程序就可以读取任何传递回来的数据并将其合并。
var store = Ext.create(‘Ext.data.Store‘, { // ... listeners: { ‘metachange‘: function(store, meta) { myGrid.reconfigure(store, meta.columns); } } });
原文地址:http://blog.csdn.net/tianxiaode/article/details/40653861