【问题标题】:ExtJS Manually adding records to store and changing model dynamicallyExtJS 手动添加记录以存储和动态更改模型
【发布时间】:2019-11-27 17:45:15
【问题描述】:

目标

我正在汇总来自多个来源的数据并将其显示在一个网格中。数据都是相同的格式。为了实现这一点,我将来自多个来源的数据加载到唯一的存储中,然后将记录加载到主存储中以进行显示。

问题

数据加载正常,但我有一个动态模型,可以重新格式化数据以显示在网格中。此模型必须在加载时更改,它不能在模型文件中硬编码。但是,一旦从其他商店加载并显示所有数据,模型字段就不会在商店中设置。强制商店应用模型的正常方法是调用store.load(),但是当我调用store.load() 时,它会从其他商店中删除手动添加的数据。如何强制这些数据在商店中持久存在,或者有没有办法强制商店在不从 url 请求数据的情况下应用模型?

TLDR

如何强制手动添加的记录保留在商店中,或者有没有办法强制商店应用动态模型而不从 url 请求数据?

【问题讨论】:

    标签: javascript extjs extjs4.2


    【解决方案1】:

    在我看来,您可以重新加载商店中的数据(因为您已经拥有所需的所有数据)。 使用 ExtJs 4.2 你可以试试这个代码:

    yourStore.loadRawData(yourStore.data.items, false)
    

    这应该确保您的所有字段都设置正确。 https://docs.sencha.com/extjs/4.2.6/#!/api/Ext.data.Store

    【讨论】:

      【解决方案2】:

      监听beforeload事件,返回false阻塞自动加载,调用ajax获取需要的数据。

      【讨论】:

        【解决方案3】:
        try store.sync();
        

        如果这无济于事,请尝试使用

        加载数据
        store.loadRawRecords([records],true);
        

        或者另一种方法是将数据保存在数组中并从那里加载而不是从其他存储中加载

        【讨论】:

          猜你喜欢
          • 2014-02-05
          • 2015-11-22
          • 2015-03-30
          • 1970-01-01
          • 1970-01-01
          • 2013-04-16
          • 1970-01-01
          • 2019-08-10
          • 1970-01-01
          相关资源
          最近更新 更多