这是我应该修复的Sencha代码,但是我不明白为什么在创建商店的新记录后,他们不会立即显示,但是,只有在刷新(?)之后。以下是相关的代码段。
谢谢。
控制器
click: function(button){
var window = button.up('window');
var form = window.down('form#formTemplateWindow');
if(window.action == "add"){
if(form.isValid()){
var store = this.getDataViewList().getStore();
var zones = new Array();
Ext.each(form.zones, function(value, key){
zones.push(value.data.id);
});
var record = form.getValues();
record.zones = zones;
store.add(record);
store.sync();
button.up('window').close();
}
}
模型
Ext.define("web.model.Template", {
extend: "Ext.data.Model",
fields: [
'id',
'name',
'layout_id',
{
name: 'reg_date',
type: 'date',
dateReadFormat: 'Y-m-d H:i:s',
dateWriteFormat: 'Y-m-d H:i:s'
},{
name: 'background',
type: 'auto'
},{
name: 'color1',
type: 'string'
},{
name: 'color2',
type: 'string'
},{
name: 'url',
type: 'string'
},{
name: 'degree',
type: 'string'
},{
name: 'playlists',
type: 'auto'
},{
name: 'zones',
type: 'auto'
}
]
});
商品
Ext.define("web.store.Template",{
extend:"Ext.data.Store",
autoSync: true,
autoLoad:false,
model:"web.model.Template",
proxy:{
type:"rest",
url:web.util.Config.TEMPLATE_URI,
reader:{
type:"json",
root:"result"
}
},
sorters: [
{
property: 'Name',
direction: 'ASC'
}
]
});
答案 0 :(得分:0)
服务器必须相应地响应新创建的记录。
答案 1 :(得分:0)
使用string result = string.Format("{0}.{1}:{2}:{3}",
duration.Days,
duration.Hours,
duration.Minutes,
duration.Seconds)
方法代替store.insert(index,record)
。
这会将Model实例插入到给定索引处的Store中,并同时触发add事件
store.add(record)
答案 2 :(得分:0)
将autoLoad属性false更改为true
<强>自动加载:真强>