1

这是 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'

             }
        }
    });

})

路由名称.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,但失败了。
如何解决这个问题?谢谢

4

1 回答 1

4

您在处理程序函数中定义RouteNameStore为局部变量。Ext.onReady

因为变量范围在函数内部,所以不能从其他函数访问。

如果您想了解有关 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');
于 2013-12-12T08:18:04.513 回答