使用extjs存储来自不同的JS文件

时间:2013-12-12 06:58:11

标签: javascript extjs jsonstore

这是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,但失败了 怎么解决这个问题?感谢

1 个答案:

答案 0 :(得分:3)

您将RouteNameStore定义为Ext.onReady处理函数内的局部变量。

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

如果您想了解有关JavaScript中变量作用域的更多信息,请查看此处:What is the scope of variables in 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');