extjs - ExtJS 使用 Ajax 加载链接列表树
问题描述
我有下面的代码,我正在尝试使用 Ajax 获取日期列表并将其显示在页面上作为指向其他地方的链接。因此,每个条目都是一个链接,当您单击该链接时,它会将您带到其他地方。虽然树列表没有加载任何项目......
数据
{
"success": true,
"data": [
"2018-10-08T00:00:00",
"2018-10-05T00:00:00",
"2018-10-04T00:00:00",
"2018-10-03T00:00:00",
]
}
代码
Ext.define('...', {
extend: 'Ext.form.Panel',
xtype: '...',
requires: [
'...'
],
layout: 'border',
items: [{
xtype: 'container',
store: {
proxy: {
type: 'ajax',
url: '...',
useDefaultXhrHeader: true,
withCredentials: true,
reader: {
type: 'json',
rootProperty: 'data'
},
}
}
}]
});
解决方案
您可以使用数据显示网格。它可以显示可点击的链接。
为此,您需要使用 ajax 存储和网格渲染器创建一个网格,如下所示:
// Ajax store
Ext.create('Ext.data.Store', {
storeId: 'mystore',
autoLoad: true,
proxy: {
type : 'ajax',
url : '/file.php',
actionMethods: {
read: 'POST'
},
reader : {
type: 'json'
},
extraParams : {
key : 'val'
},
fields : [
{name: 'date', type: 'string'}
]
}
})
// Grid
Ext.create('Ext.grid.Panel', {
renderTo: Ext.getBody(),
scrollable: true,
store: {
type: 'mystore'
},
columns: [
{
text: 'link column',
dataIndex:'link',
renderer: function(value) {
if(value) {
// here you can format your output
return '<a href="'+value+'">'+value+'</a>';
}
}
}
]
})
推荐阅读
- flutter - 通过在颤振中删除提供程序类中的重复条目来更新购物车
- javascript - Nodemailer req.body 是空的,为什么?电子邮件发送没有错误
- json - 如何从json输出中获取特定通用对象的所有数据值
- c++ - 有没有办法在 c++ 中删除和插入元素时遍历 multiset 或 unordered_set 中的元素
- python - 区块链 API 调用输出对象名称而不是内容
- reactjs - 可选字段上的 Redux-form 异步验证
- python - 如何从 dbfs:/mnt/datalake/ 中提取 /mnt/datalake/?
- git - 有没有办法在公共 github 中查看公共 repo 的推送日志?
- laravel - Laravel 5.5 重定向回输入和错误不适用于生产
- javascript - 在 Reactjs 的非功能组件中使用自定义钩子