sencha touch store 中的隐式 load()

Posted

技术标签:

【中文标题】sencha touch store 中的隐式 load()【英文标题】:implicit load() in sencha touch store 【发布时间】: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() 有什么影响?

【问题讨论】:

【参考方案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(),数据来自内存而不是调用代理?

以上是关于sencha touch store 中的隐式 load()的主要内容,如果未能解决你的问题,请参考以下文章

Sencha Touch 2:同一个 Store 中的两个 REST 请求

无法在 sencha touch 中的 localstorage 上设置嵌套的 json 数据

Sencha Touch 2 - 我如何通过回调调用 JsonP 中的细节

如何在 Sencha Touch 2 中选择性地填充 Store

sencha touch load store 手动

在 Sencha Touch/ExtJS 中不使用 store 删除列表项