Extjs 如何在同步存储后读取其他响应数据
我有以下情况。我有一个与服务器同步的TreeStore。服务器响应返回修改后的节点数据,其中包含一个附加属性“additionalTasks”(该属性存储服务器为新节点生成的一些信息)。如果存储区的所有侦听器都已获取实例化的记录对象而不是原始响应数据,那么如何获取此属性的值?我已经尝试将这个额外的字段添加到我的模型中,但是当我检查侦听器函数中记录的值时,它们显示为nullExtjs 如何在同步存储后读取其他响应数据,extjs,extjs4,response,Extjs,Extjs4,Response,我有以下情况。我有一个与服务器同步的TreeStore。服务器响应返回修改后的节点数据,其中包含一个附加属性“additionalTasks”(该属性存储服务器为新节点生成的一些信息)。如果存储区的所有侦听器都已获取实例化的记录对象而不是原始响应数据,那么如何获取此属性的值?我已经尝试将这个额外的字段添加到我的模型中,但是当我检查侦听器函数中记录的值时,它们显示为null Ext.define('ExtendedTask', { extend: 'Ext.data.Nod
Ext.define('ExtendedTask', {
extend: 'Ext.data.NodeInterface',
fields: [
{ name : 'additionalData', type : 'auto', defaultValue : null, persist : false}
]
});
var store = Ext.create("Ext.data.TreeStore", {
model : 'ExtendedTask',
autoSync: false,
proxy : {
method: 'GET',
type : 'ajax',
api: {
read : 'tasks.js',
update : 'update.php',
create : 'update.php'
},
reader : {
type : 'json'
}
},
listeners: {
update : function(){
console.log('arguments: ', arguments);
}
}
});
这是我的update.php响应:
<?php
echo '[ { "Id" : 1,'.
'"Name" : "Planning Updated",'.
'"expanded" : true,'.
'"additionalData": ['.
' {'.
' "Name" : "T100",'.
' "parentId" : null'.
' }'.
']'.
']';
?>
我也面临同样的问题。最后,我不得不使用标准树模型属性(我使用了
cls
)来处理您试图加载到模型中的任何自定义数据。我可能错了,但从我开始研究这个问题的时候起,extjs似乎正在强制树模型只使用标准字段。他们说:
如果未指定模型,将创建实现Ext.data.NodeInterface的隐式模型。标准树字段也将复制到模型上,以保持其状态。这些字段列在Ext.data.NodeInterface文档中
然而,从测试来看,无论是否指定了模型,似乎只有标准字段可用。我能找到的唯一解决办法是使用一个标准的字符串类型字段,我不需要它,比如cls
,不过我很想看看是否有人找到了更好的方法
商店的代理始终保留来自最近请求的原始响应。试试这样,看看你需要的信息是否在那里
update : function(){
console.log(this.proxy.reader.rawData);
}
我想这里的问题不一样。从服务器发送的数据对存储中保存的数据没有影响。这就是为什么不管你把你的价值分配给什么,它们都会被忽略。世跆联塞纳诺普。这将存储执行第一次“读取”操作时获取的数据。这真是白痴。