ExtJS 手动添加记录以动态存储和更改模型
ExtJS Manually adding records to store and changing model dynamically
目标
我正在聚合来自多个来源的数据并将其显示在一个网格中。数据都采用相同的格式。为了实现这一点,我将来自多个来源的数据加载到一个唯一的存储中,然后将记录加载到主存储中以供显示。
问题
数据加载正常,但我有一个动态模型重新格式化数据以显示在网格中。该模型必须在加载时更改,不能在模型文件中进行硬编码。但是,一旦所有数据都从其他商店加载并显示,模型字段就不会在商店中设置。强制商店应用模型的正常方法是调用 store.load()
,但是当我调用 store.load()
时,它会从其他商店删除手动添加的数据。我如何强制此数据保留在商店中,或者有没有办法强制商店在不从 url 请求数据的情况下应用模型?
TLDR
我如何强制手动添加的记录在商店中持久保存,或者有没有办法强制商店应用动态模型而不从 url 请求数据?
监听beforeload事件,returnfalse阻止自动加载,调用Ajax获取所需数据
try store.sync();
如果这没有帮助,请尝试使用
加载数据
store.loadRawRecords([records],true);
或者另一种方法是将数据保存在一个数组中并从那里而不是从其他商店加载它
我认为您可以重新加载商店中的数据(因为您已经拥有所需的所有数据)。
使用 ExtJs 4.2,您可以尝试此代码:
yourStore.loadRawData(yourStore.data.items, false)
这应该确保您的所有字段都设置正确。
https://docs.sencha.com/extjs/4.2.6/#!/api/Ext.data.Store
目标
我正在聚合来自多个来源的数据并将其显示在一个网格中。数据都采用相同的格式。为了实现这一点,我将来自多个来源的数据加载到一个唯一的存储中,然后将记录加载到主存储中以供显示。
问题
数据加载正常,但我有一个动态模型重新格式化数据以显示在网格中。该模型必须在加载时更改,不能在模型文件中进行硬编码。但是,一旦所有数据都从其他商店加载并显示,模型字段就不会在商店中设置。强制商店应用模型的正常方法是调用 store.load()
,但是当我调用 store.load()
时,它会从其他商店删除手动添加的数据。我如何强制此数据保留在商店中,或者有没有办法强制商店在不从 url 请求数据的情况下应用模型?
TLDR
我如何强制手动添加的记录在商店中持久保存,或者有没有办法强制商店应用动态模型而不从 url 请求数据?
监听beforeload事件,returnfalse阻止自动加载,调用Ajax获取所需数据
try store.sync();
如果这没有帮助,请尝试使用
加载数据store.loadRawRecords([records],true);
或者另一种方法是将数据保存在一个数组中并从那里而不是从其他商店加载它
我认为您可以重新加载商店中的数据(因为您已经拥有所需的所有数据)。 使用 ExtJs 4.2,您可以尝试此代码:
yourStore.loadRawData(yourStore.data.items, false)
这应该确保您的所有字段都设置正确。 https://docs.sencha.com/extjs/4.2.6/#!/api/Ext.data.Store