【问题标题】:implicit load() in sencha touch storesencha touch store 中的隐式 load()
【发布时间】:2020-01-09 16:15:39
【问题描述】:

我有一个简单地由模型和 autoLoad=false 定义的 sencha touch store。该模型的配置中只有字段,所以我猜数据存储在内存中,对应用程序来说是全局的,对吗? (我是煎茶新手)

    Ext.define('App.store.DataSession', {
        extend: 'Ext.data.Store',
        requires: ['App.model.DataSession'],

        config: { 
            model: 'App.model.DataSession',
            autoLoad: false
        } 

    }); 

我的问题是,我看到的代码没有显式地从商店加载数据,即使商店的 autoLoad 为 false

    var storesession = Ext.getStore('DataSession');
    var datasession = storesession.getAt(0);                
    if(datasession.get('state') == "1"){
    ....

getStore() 函数是否隐式加载数据?不使用 load() 有什么影响?

【问题讨论】:

    标签: extjs sencha-touch


    【解决方案1】:

    getStore() 为您提供对商店的引用。 如果你想加载数据,你必须例如:

    var storesession = Ext.getStore('DataSession');
    storesession.load({
        params: {
            id: 1 // some parameters
        },
        callback: function(records, operation, success) {  
            if(success) {
               var datasession = storesession.getAt(0);                
               if(datasession.get('state') == "1") {
                ....
            }
        }
    });
    

    看看这里:https://docs.sencha.com/extjs/7.0.0/modern/Ext.data.Store.html

    【讨论】:

    • 感谢您的回复;)我不知道没有 load() 的代码是如何工作的,以及为什么带有回调的代码不返回任何数据(在记录中或做 storesession.getAt(0 ))。没有load(),数据来自内存而不是调用代理?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-26
    • 2014-02-06
    • 2012-08-18
    • 1970-01-01
    • 2013-07-04
    • 2012-12-22
    相关资源
    最近更新 更多