gpt4 book ai didi

EXTJS--treestore getCount() 方法返回未定义,是否有任何替代方法来检查商店是否已经加载?

转载 作者:行者123 更新时间:2023-12-02 03:33:06 26 4
gpt4 key购买 nike

我有一个卡片布局,在卡片“激活”事件上我加载了商店。为了防止每次激活该卡时加载商店,我检查是否 getCount == 0,如果为真,我加载商店:

handleActivateGrid: function(){

if(this.myTreeGrid().getStore().getCount() == 0){
this.myTreeGrid().getStore().load();
}

我在我的代码的其他地方使用了同样的方法并且它工作得很好,唯一的区别是在这个例子中它是一个 Ext.data.TreeStore。

我调试后发现 getCount() 未定义,即使在商店加载之后也是如此。

我可以使用另一种方法或方法来实现上述内容吗?

谢谢

编辑:刚刚检查了文档,getCount() 不是 Ext.data.TreeStore 的方法,所以这解释了

最佳答案

A TreeStore由单个根节点和子节点组成。

查看根节点下是否有节点,可以使用如下

myTreeGrid().getStore().getRootNode().childNodes.length > 0

参见 http://docs-origin.sencha.com/extjs/4.2.2/#!/api/Ext.data.NodeInterface-property-childNodes

更正确的方法(因为理论上加载可能不会加载任何子节点)是连接一个 load event到商店,当它最初被创建时。在加载处理程序中,您可以在代码方便的地方设置您的 isLoaded 标志。

类似于 http://www.sencha.com/forum/showthread.php?91923-How-to-check-datastore-is-loaded/page2

var storeLoaded = false;
var store = Ext.create('Ext.data.TreeStore', {
proxy: {
type: 'ajax',
url: 'get-nodes.php'
},
root: {text: 'Ext JS',id: 'src', expanded: true},
listeners: {
load: function() {
storeLoaded = true;
}
}
});

var tree = Ext.create('Ext.tree.Panel', {
store: store,
renderTo: 'tree-div',
height: 300,
width: 250,
title: 'Files'
});

关于EXTJS--treestore getCount() 方法返回未定义,是否有任何替代方法来检查商店是否已经加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25489511/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com