2011-07-29 6 views
5

इस तरह हाल ही में मैं उपयोग कर रहा था directFn config:ExtJS4: क्यों मैं directFn की संपत्ति के रूप में directCfg.method निर्दिष्ट करने की आवश्यकता जब मैं अपने दुकान में directFn config का उपयोग

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

लेकिन क्योंकि ExtJS अपवाद फेंक दिया यह काम नहीं होगा

Uncaught TypeError: Cannot read property 'method' of undefined

लाइनों

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

फ़ाइल path/to/ext/src/data/proxy/Direct.js में कम से

। कुछ खुदाई के बाद मुझे पता चला कि fnmyDirectfn फ़ंक्शन को संदर्भित करता है। तो मैंने अभी लाइनों को जोड़ा है:

myDirectfn.directCfg = { 
    method: {} 
}; 

मेरे कोड में। उसके बाद सभी ठीक से काम करना शुरू कर दिया (Here is fiddle)।

तो सवाल यह है कि यह directCfg किस तरह की जादुई बात है? इसकी आवश्यकता क्यों है?

उत्तर

2

मुझे लगता है कि आप directFn अनुपयुक्त रूप से उपयोग कर रहे हैं। directFn का उपयोग Ext.direct.RemotingProvider के साथ किया जाना चाहिए। official example देखें।

1

आपको कॉल करने से पहले Ext.app.REMOTING_API में रिमोट विधि को परिभाषित करना होगा। example given by reporter में, एपीआई पेज शामिल है और "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 में परिभाषित किया गया है, जो त्रुटि दूर जाना चाहिए।

संबंधित मुद्दे