原文: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,那要实现类似的灵活性,就需要使用几个鲜为人知的框架块来实现。

开发人员一直以来都无法控制从服务器返回到应用程序的数据字段有哪些。如果你是工作于数据会从多个数据源返回数据的环境,这很可能是一个常见的挑战。数据签名可能频繁发生改变,而且数据拥有者不会去通知数据签名已经改变。用户经常静态的设置模型(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);
        }
    }});



理想情况下,每次加载是不需要重新配置网格的,除非是字段/列需要进行重新配置。尽管如此,最好还是在字段或列发生改变的时候才使用传递回来的响应中的metaData。

有关metachange事件和metaData配置项的详细信息,请参阅以下资源:

  • metachange

  • metaData