2011-07-29 9 views
5
böyle

Son zamanlarda kullanıyordum DirectFN yapılandırma:ExtJS4: Benim deposunda DirectFN yapılandırma kullandığımda neden DirectFN malı olarak directCfg.method belirtmek gerekir

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

Ama ExtJS istisna attı çünkü işe yaramaz hatlarında dosyasında path/to/ext/src/data/proxy/Direct.js yılında

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

de

Uncaught TypeError: Cannot read property 'method' of undefined

. Bazı kazma işleminden sonra, fn'un myDirectfn işlevine başvurduğunu öğrendim. Bu yüzden kodlarıma ekledim:

myDirectfn.directCfg = { 
    method: {} 
}; 

. Bundan sonra her şey düzgün çalışmaya başladı (Here is fiddle).

Soru şu: Bu ne tür bir büyülü şey bu directCfg? Neden ihtiyaç duyuluyor?

cevap

1

Uzak metodu Ext.app.REMOTING_API içinde tanımlanmadan önce tanımlamanız gerekir. example given by reporter yılında api sayfası dahil ve vekaleten sözde "TestAction" işlevini tanımlar edilir: Doğrudan işlev Ext.app.REMOTING_API tanımlanan sonra

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}]}}; 

, o hata yok olacaktır.

İlgili konular