Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ExtJS 4:编写具有模型关联的嵌套XML_Javascript_Xml_Extjs_Model_Extjs4 - Fatal编程技术网

Javascript ExtJS 4:编写具有模型关联的嵌套XML

Javascript ExtJS 4:编写具有模型关联的嵌套XML,javascript,xml,extjs,model,extjs4,Javascript,Xml,Extjs,Model,Extjs4,我试图通过模型关联来编写嵌套的XML数据,但我无法继续 首先是XML: 卡片 这是一个描述 100 int 那些笔记。。。 以下是模型代码: Ext.define('generalData'{ 扩展:“Ext.data.Model”, 字段:['name','description'] }); Ext.define('specificData'{ 扩展:“Ext.data.Model”, 字段:['number','type'] }); Ext.define('otherStuff'{ 扩展

我试图通过模型关联来编写嵌套的XML数据,但我无法继续

首先是XML:


卡片
这是一个描述
100
int
那些笔记。。。
以下是模型代码:

Ext.define('generalData'{
扩展:“Ext.data.Model”,
字段:['name','description']
});
Ext.define('specificData'{
扩展:“Ext.data.Model”,
字段:['number','type']
});
Ext.define('otherStuff'{
扩展:“Ext.data.Model”,
字段:['note']
});
Ext.define('Card'{
扩展:“Ext.data.Model”,
需要:['generalData','specificData','otherStuff'],
哈松:[{
名称:“generalData”,
模型:“generalData”,
getterName:'getGeneralData',
associationKey:'generalData',
读者:{
键入:“xml”,
根:'generalData',
记录:“generalData”
} ,
作者:{
键入:“xml”,
documentRoot:“generalData”,
记录:“generalData”
}
} , {
名称:“specificData”,
模型:“specificData”,
getterName:'getSpecificData',
associationKey:'specificData',
读者:{
键入:“xml”,
root:“specificData”,
记录:“特定数据”
} ,
作者:{
键入:“xml”,
documentRoot:“specificData”,
记录:“特定数据”
}
} , {
名称:“其他东西”,
模型:“其他东西”,
getterName:“getOtherStuff”,
associationKey:'otherStuff',
读者:{
键入:“xml”,
词根:'otherStuff',
记录:“其他东西”
} ,
作者:{
键入:“xml”,
documentRoot:“其他东西”,
记录:“其他东西”
}
}] ,
代理:{
键入:“ajax”,
url:“/card”,
读者:{
键入:“xml”,
记录:'卡片',
根:'卡'
} ,
作者:{
键入:“xml”,
documentRoot:'卡片',
记录:'卡片',
标题:“”
}
}
});
正如您所看到的,每个模型都有自己的读者和作者(最后一个真的需要吗?)

在这里,我检索数据并尝试将其发送回服务器

Card.load(1{
成功:功能(卡片){
console.log(卡);
var gd=card.getGeneralData(函数(数据){
console.log(data.get('name'));
data.set('name','other card');
});
card.save();
}
});
当调用“success”函数时,我会保存我请求的所有XML,并在控制台上写入“一张卡”。然后,我尝试在“另一张卡”中更改卡的名称,并使用card.save()将数据发送回。 在这一点上,我遇到了三种问题:

1) 请求paylod(发送到服务器的数据)不是我在上一个请求中得到的XML。事实上,它有以下结构:


我之所以得到这个结构是因为writer:empty包含两个相等的元素和一个新元素('id'),我没有指定任何地方。 因此,第一个问题是:如何将单个documentRoot或record元素添加到要发送的数据中?

2) 第二点是:我的数据在哪里?为什么发送的XML是空的?我在模型保存过程中做得对吗?

3) 最后还有第三个问题:请求的内容类型是text/xml。那么,如何将其更改为application/xml?

模型联想对阅读没问题,但我真的不明白它们是如何与写作结合在一起的。
我想要的只是读取XML数据,修改一些字段,然后再次发送回来,所有内容都是XML格式。

我在Sencha论坛上问过,并且:

编写器此时不支持嵌套

斯科特

所以,到目前为止,这是不可能的;)