【发布时间】:2023-03-18 00:10:01
【问题描述】:
在 ExtJS 6.2 中,有一个包含一些默认数据的存储,我如何用数据库中的数据覆盖默认数据?
例子:
var store = Ext.create('Ext.data.Store', {
fields: ['name', 'email', 'phone'],
data: [{
'name': 'Lisa',
"email": "lisa@simpsons.com",
"phone": "555-111-1224"
}, {
'name': 'Bart',
"email": "bart@simpsons.com",
"phone": "555-222-1234"
}, {
'name': 'Homer',
"email": "home@simpsons.com",
"phone": "555-222-1244"
}, {
'name': 'Marge',
"email": "marge@simpsons.com",
"phone": "555-222-1254"
}],
//idProperty: 'name',
proxy: {
type: 'ajax',
url: 'data1.json',
reader: {
type: 'json',
rootProperty: 'items',
totalProperty: 'total'
}
}
});
然后,在我的数据库中,丽莎实际上有电话号码“555-111-4321”,所以当我拨打store.load() 时,它将用“555-111-4321”覆盖丽莎的电话号码。
【问题讨论】:
-
对不起,我不明白。您的小提琴会这样做,它首先使用默认数据加载,但很快它就会被 data1.json 中的数据替换。究竟需要什么?
-
@PeterKoltai 这不是为我替换数据,而是在加载更多数据,在网格中它将显示 2 个 Lisa,而不是更新后的电话号码。
-
但是您的
data1.json本身包含两个 Lisas!所以当你加载它时,它会用两个 Lisas 替换网格内容,正如预期的那样。 -
@PeterKoltai 抱歉,我更新了小提琴。发生的情况是它从存储中删除所有内容并替换为 JSON 中的值,因此
Homer也被删除,我想添加新行(如果存在)并更新现有行,但不要删除任何行.
标签: javascript extjs model store