Javascript 检索存储记录

Javascript 检索存储记录,javascript,extjs,extjs4,Javascript,Extjs,Extjs4,我有一个类似这样的JSON { "children":[ {"name": "subdivision1","id": "subdiv1","type": "subdiv","children":[ {"name": "Scheme1","id": "scheme1","type": "scheme","children":[ {"name": "Nathuji","id": "nathuji","type": "da

我有一个类似这样的JSON

{
    "children":[
        {"name": "subdivision1","id": "subdiv1","type": "subdiv","children":[
            {"name": "Scheme1","id": "scheme1","type": "scheme","children":[
                {"name": "Nathuji","id": "nathuji","type": "datalogger","leaf":true},
                { "name": "Tarsang","id": "tarsang","type": "datalogger","leaf":true},
                { "name": "Mithapur","id": "mithapur","type": "datalogger","leaf":true},
                { "name": "Samali","id": "samali","type": "datalogger","leaf":true}]},
            {"name": "Scheme2","id": "scheme2","type": "scheme","children":[
                { "name": "Bhunidra","belongsto": "scheme2","id": "bhunidra","type": "datalogger","leaf":true},
                { "name": "Chhogala","belongsto": "scheme2","id": "chhogala","type": "datalogger","leaf":true}]
                }]},
        {"name": "subdivision2","id": "subdiv2","type": "subdiv","children":[
            {"name": "Scheme3","id": "scheme3","type": "scheme","children":[
                { "name": "Thana Savli","belongsto": "scheme3","id": "thanasavli","type": "datalogger","leaf":true},
                { "name": "Padardi","belongsto": "scheme3","id": "padardi","type": "datalogger","leaf":true}]
                }]}]}
Ext.define('DemoApp.model.dataloggerhierarchymodel',{
    extend: 'Ext.data.Model',
    fields: ['name','id','type'],
    proxy: {
        type: 'ajax',
        api: {
            read: 'data/allschemes.json'
        },
        reader: {
            type: 'json',
            root: 'children'
        }
    }
});
Ext.define('DemoApp.store.dataloggerhierarchystore',{
    extend: 'Ext.data.TreeStore',
    model: 'DemoApp.model.dataloggerhierarchymodel',
    autoLoad: true,
    listeners: {
        load:function(){
            console.log('Datalogger Tree store loaded');
        }
    },
    root: {
        expanded: true
    }
});
像这样的模型

{
    "children":[
        {"name": "subdivision1","id": "subdiv1","type": "subdiv","children":[
            {"name": "Scheme1","id": "scheme1","type": "scheme","children":[
                {"name": "Nathuji","id": "nathuji","type": "datalogger","leaf":true},
                { "name": "Tarsang","id": "tarsang","type": "datalogger","leaf":true},
                { "name": "Mithapur","id": "mithapur","type": "datalogger","leaf":true},
                { "name": "Samali","id": "samali","type": "datalogger","leaf":true}]},
            {"name": "Scheme2","id": "scheme2","type": "scheme","children":[
                { "name": "Bhunidra","belongsto": "scheme2","id": "bhunidra","type": "datalogger","leaf":true},
                { "name": "Chhogala","belongsto": "scheme2","id": "chhogala","type": "datalogger","leaf":true}]
                }]},
        {"name": "subdivision2","id": "subdiv2","type": "subdiv","children":[
            {"name": "Scheme3","id": "scheme3","type": "scheme","children":[
                { "name": "Thana Savli","belongsto": "scheme3","id": "thanasavli","type": "datalogger","leaf":true},
                { "name": "Padardi","belongsto": "scheme3","id": "padardi","type": "datalogger","leaf":true}]
                }]}]}
Ext.define('DemoApp.model.dataloggerhierarchymodel',{
    extend: 'Ext.data.Model',
    fields: ['name','id','type'],
    proxy: {
        type: 'ajax',
        api: {
            read: 'data/allschemes.json'
        },
        reader: {
            type: 'json',
            root: 'children'
        }
    }
});
Ext.define('DemoApp.store.dataloggerhierarchystore',{
    extend: 'Ext.data.TreeStore',
    model: 'DemoApp.model.dataloggerhierarchymodel',
    autoLoad: true,
    listeners: {
        load:function(){
            console.log('Datalogger Tree store loaded');
        }
    },
    root: {
        expanded: true
    }
});
像这样储存

{
    "children":[
        {"name": "subdivision1","id": "subdiv1","type": "subdiv","children":[
            {"name": "Scheme1","id": "scheme1","type": "scheme","children":[
                {"name": "Nathuji","id": "nathuji","type": "datalogger","leaf":true},
                { "name": "Tarsang","id": "tarsang","type": "datalogger","leaf":true},
                { "name": "Mithapur","id": "mithapur","type": "datalogger","leaf":true},
                { "name": "Samali","id": "samali","type": "datalogger","leaf":true}]},
            {"name": "Scheme2","id": "scheme2","type": "scheme","children":[
                { "name": "Bhunidra","belongsto": "scheme2","id": "bhunidra","type": "datalogger","leaf":true},
                { "name": "Chhogala","belongsto": "scheme2","id": "chhogala","type": "datalogger","leaf":true}]
                }]},
        {"name": "subdivision2","id": "subdiv2","type": "subdiv","children":[
            {"name": "Scheme3","id": "scheme3","type": "scheme","children":[
                { "name": "Thana Savli","belongsto": "scheme3","id": "thanasavli","type": "datalogger","leaf":true},
                { "name": "Padardi","belongsto": "scheme3","id": "padardi","type": "datalogger","leaf":true}]
                }]}]}
Ext.define('DemoApp.model.dataloggerhierarchymodel',{
    extend: 'Ext.data.Model',
    fields: ['name','id','type'],
    proxy: {
        type: 'ajax',
        api: {
            read: 'data/allschemes.json'
        },
        reader: {
            type: 'json',
            root: 'children'
        }
    }
});
Ext.define('DemoApp.store.dataloggerhierarchystore',{
    extend: 'Ext.data.TreeStore',
    model: 'DemoApp.model.dataloggerhierarchymodel',
    autoLoad: true,
    listeners: {
        load:function(){
            console.log('Datalogger Tree store loaded');
        }
    },
    root: {
        expanded: true
    }
});
我在控制器中访问它,就像

var schemesStore = this.getDataloggerhierarchystoreStore();
        if(schemesStore == null || schemesStore == undefined){
            console.log('Store Undefined');
        }
        for(var i = 0; i< schemesStore.count();i++)
            {
                console.log('Record - '+schemesStore[i].get('id'));
            };

        schemesStore.each(function(currentRecord){
            console.log(currentRecord.get('id'));
        });
var schemesStore=this.getDataloggerHierarchyStore();
if(schemesStore==null | | schemesStore==未定义){
log(“存储未定义”);
}
对于(var i=0;i
我在树面板中显示它,它工作正常。现在我想访问商店中的每条记录。
但是我得到的错误是
count()
不是一个函数。对于
totalCount()
each()
,情况也是如此。我错过了什么?如何从存储访问单个记录?

不幸的是,
Ext.data.TreeStore
不是
Ext.data.store
的子类。它并没有普通商店的所有方法。要访问数据,必须使用
getRootNode()
Ext.data.NodeInterface
中定义的方法访问根节点


NodeInterface提供了与
each()
等效的
cascadeBy()
方法,您必须使用它来编写自己的
count()
方法。

但是使用
NodeInterface
如何访问每个字段?比如说,如果我想检索
id
name
,我如何通过当前的
NodeInterface
?我的意思是类似于正常存储中的
get()
函数?NodeInterface
中的方法用于装饰您的模型。因此,您仍然可以在单个节点上使用
get()
。基本上,它把你的记录变成树节点。我得到了我想要的。Thnx。如果可以,我会+2或3:)