Implementé Ext.Direct para devolver datos a una tienda; sin embargo, los métodos directFn no están disponibles en javascript.
api.php devuelve var Ext = Ext || {}; Ext.REMOTING_API = {"url":"php/api/router.php","type":"remoting","actions":{"RaStatuses":[{"name":"get_ra_statuses","len":1}]}};
router.php devuelve {"type":"rpc","tid":1,"action":"RaStatuses","method":"get_ra_statuses","result":[{"ra_no":"2"},{"ra_no":"4"},{"ra_no":"6"},{"ra_no":"8"},{"ra_no":"10"}]}
...y llena con éxito esta tienda
Ext.define('CSM.store.ra.Statuses', { extend: 'Ext.data.Store', model: 'CSM.model.ra.Status', proxy: { type: 'direct', directFn: "RaStatuses.get_ra_statuses" }, autoLoad: true }); Sin embargo, cuando uso esta línea desde una función de javascript a = RaStatuses.get_ra_statuses();
... Obtengo 'ReferenceError: RaStatuses is not defined'
¿He entendido mal? ¿Debería Ext.Direct hacer que este objeto esté disponible dentro de js o fue una ilusión?
Esto ahora funciona (ExtJS 6.0.2). Modifiqué api.php para devolver...
Ext.namespace('RPC'); var Ext = Ext || {}; RPC.REMOTING_API = { "url": "php/api/router.php", "type": "remoting", "namespace": "RPC", "descriptor": "RPC.REMOTING_API", "actions": { "RaStatuses": [{ "name": "get_ra_statuses", "len": 0 }] } }; Ext.direct.Manager.addProvider(RPC.REMOTING_API);Esta llamada ahora devuelve datos
RPC.RaStatuses.get_ra_statuses();