javascript - AJAX 请求返回双倍对象列表 - YUI

标签 javascript ajax yui

我正在使用 YUI 的 Datatable Column Formatter格式化从 AJAX 请求返回的一些数据。这是配置:

var dataTable = new Y.DataTable(
{
    id: 'my-table',
    height: '500px',
    width: '500px'
});
var columns = [{
        key: 'id',
        label: 'ID'
    }, {
        label: 'Name',
        formatter: function (o) {
            console.log(o.data);
            return o.data.name; 
        }
    },
    {   
        key: 'department',
        label: 'Department'
    }
];

function search(){
    dataSource = new Y.DataSource.IO({source: '/search' });
    dataSource.sendRequest({
        dataType: 'json',
        on: {
            success: function(e) {
                response = e.data.responseText;             
                data = Y.JSON.parse(response);
                dataTable.set('columns', columns);
                dataTable.set('data', data.content); 
            },
            failure: function(e) {
                //do stuff
            }
        });
    }

我的表填充得很好

enter image description here

这是从控制台返回的

Object {id: 1, name: "Bob", department: 001}
Object {id: 2, name: "Andy", department: 003}

但是,如果我第二次启动请求,返回的对象数量就会翻倍

Object {id: 1, name: "Bob", department: 001}
Object {id: 2, name: "Andy", department: 003}
Object {id: 1, name: "Bob", department: 001}
Object {id: 2, name: "Andy", department: 003}

虽然数据仍然显示,但这种重复会破坏其他地方的功能。此外,无论发起多少次请求,都只会返回加倍的列表。知道为什么对象会合并吗?

最佳答案

尝试删除每个 AJAX 请求上的现有数据。 $('#myTableID').remove() 然后重新创建。看来您的 AJAX 调用正在附加到现有内容

关于javascript - AJAX 请求返回双倍对象列表 - YUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31520434/

相关文章:

javascript - 将旋转和平移与 three.js 结合起来

javascript - 正则表达式如果子字符串存在则匹配字符串的另一部分

javascript - 如何获取 Google Plus 通知数量?

javascript - jQuery Ajax 内存泄漏

javascript - Jquery文件上传进度条

yui - 如何从 YUI 数据表中获取选定行的内容?

javascript - 上传带有预览的图像

javascript - D3圆形包-动态标签更新

javascript - fakewaffle响应选项卡屏幕问题

javascript - 在 Telerik RadPageView 完成加载后调用 JavaScript 函数?