Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用getGroups方法的ExtJS中的问题_Javascript_Extjs - Fatal编程技术网

Javascript 使用getGroups方法的ExtJS中的问题

Javascript 使用getGroups方法的ExtJS中的问题,javascript,extjs,Javascript,Extjs,我使用ExtJS4。控制器用户加载同一型号的多个选项卡。“组”列中每个选项卡的名称。名为“default”的选项卡是标准选项卡。以下是来自控制器的一些代码: onLaunch: function(app) { var self = this; this.getUserStore().on("load", function(store) { var groups = store.getGroups(); for (tab in self.tabs)

我使用ExtJS4。控制器用户加载同一型号的多个选项卡。“组”列中每个选项卡的名称。名为“default”的选项卡是标准选项卡。以下是来自控制器的一些代码:

onLaunch: function(app) {
    var self = this;
    this.getUserStore().on("load", function(store) {
        var groups = store.getGroups();

        for (tab in self.tabs)
            try
            {
                Ext.ComponentQuery.query("#mainLayout")[0].remove(self.tabs[tab], true);
            }
            catch (err)
            {
                if (console)
                    console.log(err, "Happened, but it's okay");
            }

        self.tabs = [];

        for (var i = 0; i < groups.length; i++) {

            if (groups[i].name == "default")
                continue;

            var newStore = Ext.create("al.store.User2");

            newStore.loadRecords(groups[i].children);

            var id = "tab-id-" + groups[i].name;

            try
            {

                Ext.ComponentQuery.query("#mainLayout")[0].add({
                    xtype: 'userlist',
                    title: groups[i].name,
                    id: id,
                    store: newStore
                });
            }
            catch (err)
            {
                alert(err);
            }


            self.tabs.push(id);

        }

        store.clearFilter(true);
        store.filter([{id: "class", property: "group", value: "default"}]);
    });
},

refresh: function() {
    this.getUserStore().load();
},
onLaunch:function(应用程序){
var self=这个;
this.getUserStore().on(“加载”,函数(存储){
var groups=store.getGroups();
用于(self.tabs中的选项卡)
尝试
{
Ext.ComponentQuery.query(“#mainLayout”)[0]。删除(self.tabs[tab],true);
}
捕捉(错误)
{
if(控制台)
log(呃,“发生了,但没关系”);
}
self.tabs=[];
对于(变量i=0;i

问题是,当您第一次加载时,一切正常,但当用户尝试更新选项卡(方法“刷新”)时,除了标准选项卡之外,所有选项卡都丢失了。方法“store.getGroups()”中存在问题。此方法在第一次加载时正常工作,但当用户尝试更新选项卡时,此方法将提供0个组。如何解决这个问题?

看来,第二次加载存储时,它不会获取任何数据。验证请求是否有效(包含(所有最终)参数)以及该请求是否返回数据

希望有帮助:)

附言

如果不是这样,请向我展示存储、模型和示例性请求以及响应数据

ps2


还有一件事-你把它描述成什么“标签”?我不理解“模型选项卡”。

似乎是因为
过滤器的缘故。在
load
处理程序的末尾,您设置了过滤器,该过滤器设置为仅显示默认组。

刷新功能在哪里?非常感谢!我是ExtJS的新手,下次我会更加专注。