Ext JS:Combo 中的元素不可见,但已加载
Ext JS: Elements in Combo are not visible, but loaded
使用 Ext JS 6.2.x。创建了一个组合。它使用 ajax 代理请求:
Request .../rest/maps/tree?_dc=1519213286176&page=1&start=0&limit=25
Request Method:GET
Status Code:200 OK
Accept:*/*
Accept-Encoding:gzip, deflate, br
响应headers:
Cache-Control:no-cache, no-store, must-revalidate
Connection:keep-alive
Content-Type:application/json
作为响应 body 返回一组年份:
["2015","2017","2018","2019","2016","2020"]
这是一个代码:
Ext.define('MapsYears', {
// extend: 'Ext.data.ArrayStore',
extend: 'Ext.data.Store',
alias: 'store.maps-years',
autoLoad: true,
fields: ['year'],
proxy: {
type: 'ajax',
url: 'rest/maps/tree'
}
});
Ext.define('Main.panel.SnapshotNow', {
xtype: 'snapshotNow',
extend: 'Ext.panel.Panel',
requires: [
],
items: [{
id: 'SnapshotNow',
xtype: "combobox",
store: {
type: 'maps-years'
},
displayField: 'year',
valueField: 'year'
}]
});
项目已加载,我什至可以点击组合,项目显示为已选择,但项目列表不可见:
我想念什么?
更新: 在响应中,它实际上不是 json-format。我可以通过更改休息服务并返回正确的 json 来解决此问题。问题是,有没有办法告诉 ExtJS 正确处理原始示例中的元素列表,看起来像:
["2015","2017","2018","2019","2016","2020"]
这应该可以修复您的数据结构
Ext.define('MapsYears', {
extend: 'Ext.data.Store',
alias: 'store.maps-years',
autoLoad: true,
fields: ['year'],
proxy: {
type: 'ajax',
url: 'rest/maps/tree',
reader: {
type: 'json',
transform: data => data.map(year => ({year}))
}
}
});
使用 Ext JS 6.2.x。创建了一个组合。它使用 ajax 代理请求:
Request .../rest/maps/tree?_dc=1519213286176&page=1&start=0&limit=25
Request Method:GET
Status Code:200 OK
Accept:*/*
Accept-Encoding:gzip, deflate, br
响应headers:
Cache-Control:no-cache, no-store, must-revalidate
Connection:keep-alive
Content-Type:application/json
作为响应 body 返回一组年份:
["2015","2017","2018","2019","2016","2020"]
这是一个代码:
Ext.define('MapsYears', {
// extend: 'Ext.data.ArrayStore',
extend: 'Ext.data.Store',
alias: 'store.maps-years',
autoLoad: true,
fields: ['year'],
proxy: {
type: 'ajax',
url: 'rest/maps/tree'
}
});
Ext.define('Main.panel.SnapshotNow', {
xtype: 'snapshotNow',
extend: 'Ext.panel.Panel',
requires: [
],
items: [{
id: 'SnapshotNow',
xtype: "combobox",
store: {
type: 'maps-years'
},
displayField: 'year',
valueField: 'year'
}]
});
项目已加载,我什至可以点击组合,项目显示为已选择,但项目列表不可见:
我想念什么?
更新: 在响应中,它实际上不是 json-format。我可以通过更改休息服务并返回正确的 json 来解决此问题。问题是,有没有办法告诉 ExtJS 正确处理原始示例中的元素列表,看起来像:
["2015","2017","2018","2019","2016","2020"]
这应该可以修复您的数据结构
Ext.define('MapsYears', {
extend: 'Ext.data.Store',
alias: 'store.maps-years',
autoLoad: true,
fields: ['year'],
proxy: {
type: 'ajax',
url: 'rest/maps/tree',
reader: {
type: 'json',
transform: data => data.map(year => ({year}))
}
}
});