【翻译】Ext JS最新技巧——2014-10-30

原文:Top Support Tips

Greg Barry:Ext JS 5的ExtraParams

Ext JS 4同意用户直接将extraParams加入到一个链接,相似例如以下代码:

Ext.Ajax.extraParams = { foo: "bar" };

因为Ext JS5对数据包进行了改动,该方法就不再可行了。如今,须要使用 setExtraParams和getExtraParams方法来为Ext.data.Connection提供參数,比如:

Ext.Ajax.setExtraParams({
    foo: "bar"             
});

有关这些方法的具体信息,请阅读下面资源: Ext.data.Connection

你能够通过查看 Fiddle的标题中网络标签页中的“列表”来查看该功能的演示。

Seth Lemmons:Ext JS 4中的动态字段和网格列

Ext JS 5的数据包变化让灵活的数据更易于工作了。然而,假设你正在使用Ext JS 4,那要实现相似的灵活性,就须要使用几个鲜为人知的框架块来实现。

开发者一直以来都无法控制从server返回到应用程序的数据字段有哪些。假设你是工作于数据会从多个数据源返回数据的环境,这非常可能是一个常见的挑战。数据签名可能频繁发生改变,并且数据拥有者不会去通知数据签名已经改变。用户常常静态的设置模型(model)/存储(store)(或网格中的列)的字段。然而,你能够利用metachage事件以及返回的metaDaata键来让数据变得灵活。

注意:metachange事件眼下仅仅会被JSON读取器(reader)触发。

假设server响应包括了在读取器的metaProperty配置项设置的metaData键,那数据就可从metaData响应中获取。不论什么传递过来的数据记录的根就能够在这里被定义为存储的字段。假设记录对象是通过metaData对象传递的,那么字段就被读取器自己主动应用到存储/模型。

与响应相关的信息也会传递回响应中,比如,一个关联存储的数组列也能够被传递,且可使用存储的metachange事件来动态应用。

当metaData被传递回响应,就会触发metachange事件,这时,处理程序就能够读取不论什么传递回来的数据并将其合并。

var store = Ext.create('Ext.data.Store', {
    // ...
    listeners: {
        'metachange': function(store, meta) {
            myGrid.reconfigure(store, meta.columns);
        }
    }
});

理想情况下,每次载入是不须要又一次配置网格的,除非是字段/列须要进行又一次配置。虽然如此,不妨在字段或列发生改变的时候才使用传递回来的响应中的metaData。

有关metachange事件和metaData配置项的具体信息,请參阅下面资源:


你可能感兴趣的:(ext)