簡體   English   中英

ExtJS4:為什么當我在商店中使用directFn配置時,我需要指定directCfg.method作為directFn的屬性

[英]ExtJS4: Why when I use directFn config in my store I need to specify directCfg.method as directFn's property

最近我使用的是directFn配置:

var store = new Ext.data.Store({
    proxy: {
        type: 'direct',
        directFn: myDirectfn,
...

但它不起作用,因為ExtJS引發了異常

未捕獲的TypeError:無法讀取未定義的屬性'method'

在線

method = fn.directCfg.method;
if (method.ordered) {

在文件path/to/ext/src/data/proxy/Direct.js 經過一番挖掘后,我發現fn指的是myDirectfn函數。 所以我剛添加了一些行:

myDirectfn.directCfg = {
    method: {}
};

在我的代碼中。 之后,一切都開始正常工作( 這里是小提琴 )。

所以問題是:這個directCfg是什么樣的神奇之物? 為什么需要它?

我認為你不恰當地使用directFn directFn必須與Ext.direct.RemotingProvider一起使用。 查看官方示例

您必須在調用之前在Ext.app.REMOTING_API中定義遠程方法。 記者提供示例中 ,包含了api頁面並定義了代理調用的“TestAction”函數:

Ext.ns("Ext.app"); 
Ext.app.REMOTING_API = {"url":"php\/router.php","type":"remoting","actions":{"TestAction":[{"name":"doEcho","len":1},{"name":"multiply","len":1},{"name":"getTree","len":1},{"name":"getGrid","len":1},{"name":"showDetails","params":["firstName","lastName","age"]}],"Profile":[{"name":"getBasicInfo","len":2},{"name":"getPhoneInfo","len":1},{"name":"getLocationInfo","len":1},{"name":"updateBasicInfo","len":0,"formHandler":true}]}};

一旦在Ext.app.REMOTING_API中定義了直接函數,該錯誤就會消失。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM