【问题标题】:Sencha Touch: How to read certain record from the store?Sencha Touch:如何从商店中读取某些记录?
【发布时间】:2012-01-14 01:02:19
【问题描述】:

我有一个具有 3 级数据深度的应用程序:

  • 演示文稿列表
  • 演示详细信息
  • 演示幻灯片

现在,当用户来到应用程序时,他会看到从 JSONP 商店加载的列表。他点击一项,回调函数接收记录。它将它推入新视图 - 细节并显示它。用户可以从那里公开演示幻灯片 - 数据记录再次从详细信息传递。

问题是用户刷新页面或来自 URL。如果他来到像 /presentations/slides/1 这样的 url,他想查看演示 id:1 的幻灯片。问题是,只要他不在列表中,数据就没有加载,因为它没有加载,它没有传递给细节,细节也没有传递给幻灯片视图。所以我没有数据。

但我还有身份证!来自 PHP 的 Zend 框架,我会调用类似:this.store.find(1),但我找不到任何方法来做到这一点。

我如何根据 record.data.id 从商店加载一些东西?

要添加更多,store.load() 似乎异步工作,所以当我这样做时:

store.load();
store.each(function(rec){console.log(rec);});

它不适用于 JSONP 存储,因为尚未加载数据。但是当我使用 Chrome 调试器并暂停执行以让数据加载时,它可以工作:(

【问题讨论】:

    标签: sencha-touch extjs store


    【解决方案1】:

    您是正确的,负载是异步的,因此您所要做的就是使用商店的回调函数。你可以在这里找到一个例子How to get data from extjs 4 store

    【讨论】:

    • 是的,问题是:如何延迟运行动作?我正在调度过程中,如果我使用回调,它将在代码中进一步失败,假设它有记录。
    • 我仍然无法从商店收到一条记录:(
    • 好吧,您要么根据回调函数中的记录移动所有代码,要么在商店加载时设置一个侦听器,然后您可以在知道商店已加载的情况下添加代码。跨度>
    • 并从商店加载一件确切的商品?
    • 在回调或加载事件触发的函数上,可以使用 var rec = store.findRecord('id',idOfRecYouWant)
    猜你喜欢
    • 2013-03-19
    • 1970-01-01
    • 2012-05-29
    • 2014-01-25
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    相关资源
    最近更新 更多