我的JSON數據: -ExtJS的4問題,努力做更新的深度嵌套的JSON數據
{
"attributes": {
"list": [
{
"name":"attribute2",
"value":"attribute2 value"
}, {
"name":"attribute1",
"value":"attribute1 value"
}]
}
"name":"name1",
"id":1234
}
我的商店定義: -
Ext.define('Attr', {
extend: 'Ext.data.Store',
model: 'Attribute',
autoLoad: true,
proxy: {
type: 'rest',
url: 'data/1234',
api: {
update: 'newdata/1234'
},
reader: {
type: 'json',
root: 'attributes.list'
}
}
});
我的模型定義: -
Ext.define('Attribute', {
extend: 'Ext.data.Model',
fields: ['name','value']
});
用於顯示上述商店的視圖: -
{
xtype: 'grid',
store: 'Attr',
id: 'attrpanel',
columns: [
{
header: 'Name',
sortable: true,
dataIndex: ['name'],
flex: 1
}, {
header: 'Value',
sortable: true,
dataIndex: ['value'],
flex: 1
}]
}
現狀:我可以顯示來自Json對象的數據值。
問題:每當我編輯的字段後,在我的控制器調用this.getAttrStore()同步(),我得到一個錯誤。 我已經通過論壇的數量進行了搜索,並意識到在更新深度嵌套的JSON數據時似乎存在一些問題。
我曾想過讓彼得穆勒的補丁,但我沒有真正給那一槍。
請糾正我,如果我錯了,或者如果你能指向我有用的東西,這將是一個很大的幫助。
非常感謝!
感謝您的快速回復Bruni! 我點擊「保存按鈕」後會出現一個錯誤,該保存按鈕會在彈出窗口中打開。在「控制器」裏面,「click save button」動作事件會執行「this.getAttrStore()。sync()」,這會給我一個405錯誤。 問題是,與非嵌套Json一起使用時,上面的函數完全相同,即我能夠更新我的Json。 請告訴我,如果我能夠正確解釋自己。 就寫作者而言,我配置了一個與讀者相同的根,它也給了我相同的405錯誤。 這可能是一個REST服務問題? –
HTTP錯誤405 =方法不允許,所以在服務器端似乎有問題 –
服務器期望接收的內容與接收的內容可能不匹配。您的客戶端發送給服務器的JSON無法映射到服務器端的模型。經歷了嵌套數據的相同問題原因。 – levivanzele