使用不同JS文件中的extjs存储

using extjs Store from Different JS file

本文关键字:extjs 存储 文件 JS      更新时间:2023-09-26

这是CreateUI.js

Ext.onReady(function() {
    Ext.QuickTips.init(); //tips box

    Ext.define('RouteModel', {
        extend: 'Ext.data.Model',
        fields: [{name: '_id', type: 'number'}, 'Route_Code','Route_Name','Name','AddBy_ID']
    });
    Ext.override(Ext.data.Connection, {
    timeout : 840000
    });
    var RouteNameStore = Ext.create('Ext.data.JsonStore', {
        model: 'RouteModel',
        autoLoad: true,
        proxy: {
            type: 'ajax',
            url: 'get-routename.php',
            api: {
                    create: 'insert-routename.php',
                    //read: 'http://visual04/ModuleGestion/php/Pays.php?action=read',
                    update: 'update-routename.php',
                    //destroy: 'http://visual04/ModuleGestion/php/Pays.php?action=destroy'
                },
            reader: {
                type: 'json',
                idProperty: '_id'
            },
            writer: {
                type: 'json',
                id: '_id'
             }
        }
    });

})

routename.js

RouteNameStore.add ({
          Route_Code: txtAddRouteCode,
          Route_Name: txtAddRouteName,
          AddBy_ID: getCookie('User_ID')
        }); 

这是链接这两个js文件的index.html页面

 <script type="text/javascript" src="CreateUI.js?"></script>
   <script type="text/javascript" src="routename.js?"></script>

火警错误

ReferenceError: RouteNameStore is not defined
RouteNameStore.add ({

我试图在不同的JavaScript文件上使用JSonStore,但失败了
如何解决这个问题?感谢

您在Ext.onReady处理程序函数中将RouteNameStore定义为本地变量。

因为可变范围在函数内部,所以无法从其他函数访问它。

如果你想了解更多关于JavaScript中变量作用域的信息,你可以看看这里:JavaScript中变量的作用域是什么?

为了访问ExtJS中的商店,您可以在商店配置中添加唯一的storeId,然后通过Ext.data.StoreManager 在其他对象中获取您的商店

// create store
Ext.create('Ext.data.Store', {
    ...
    storeId: 'myStore'
    ...
});
// get existing store instance
var store = Ext.data.StoreManager.lookup('myStore');