Bootstrap 没有显示来自 REST 端点的数据?

Bootstrap not showing data from REST endpoint?

使用 bootstrap table 命中我的一个 REST 端点,但我们现在显示的数据根本没有。这是我正在处理的内容(参见 fiddle: https://jsfiddle.net/vgwod3fb/):

$('#data-table').bootstrapTable({
    url: '/rest/endpoint,
    striped: true,
    iconSize: 'btn-sm',
    cache: false,
    search: true,
    searchOnEnterKey: true,
    searchText: 'Search for a member...',
    columns: [
        {
            checkbox: true,
            field: 'check',
            clickToSelect: true,
            searchable: false
        },
        {
            field: 'email',
            title: 'Name',
            sortable: true,
            clickToSelect: false
        },
        {
            field: 'role',
            title: 'Type',
            sortable: true,
            clickToSelect: false
        },
        {
            field: 'actions',
            title: 'Actions',
            sortable: false,
            clickToSelect: false,
            formatter: function () {
                return '<img class="control" src="/assets/images/delete.svg" alt="Delete">';
            }
        }
    ]
});

根据我所见,我从端点获取了正确的数据,但 table 未显示正确的数据。请参阅下面的回复:

失败的地方是getData()方法:

如果我在控制台中重置数据值,数据将正确显示:

 data = this.options.data;

有什么想法吗? Bootstrap Table 是否期望响应与列的结构完全相同?

更新 1

我尝试过使用这种方法,但仍然无济于事...如此广泛使用的小部件这绝对是一个展示问题。

我像 table 一样使用 ajax 调用获取了数据,我清理了数据,所以我们有:

 {
      checkbox: true,
      email: 'user@foo.com',
      role: 'foo',
      actions: undefined
 }

下面是我使用的代码:

if (_$dataTable) {
    var deferred = $.Deferred(), json = null;

    $.getJSON('http://localhost:3000/members/list/01tuee743h9muf6', function (data) {
        deferred.resolve(data);
    }).fail(function (error) {
        deferred.reject(error);
    });


    $.when(deferred).done(function (json) {
        json = Utils.dataCleanup(json);

        _$dataTable.bootstrapTable({
            striped: true,
            iconSize: 'btn-sm',
            cache: false,
            search: true,
            searchOnEnterKey: true,
            searchText: 'Search for a member...',
            data: json,
            columns: [
                {
                    checkbox: true,
                    field: 'check',
                    clickToSelect: true,
                    searchable: false
                },
                {
                    field: 'email',
                    title: 'Name',
                    sortable: true,
                    clickToSelect: false
                },
                {
                    field: 'role',
                    title: 'Type',
                    sortable: true,
                    clickToSelect: false
                },
                {
                    field: 'actions',
                    title: 'Actions',
                    sortable: false,
                    clickToSelect: false,
                    formatter: function () {
                        return '<img class="control" src="/assets/images/delete.svg" alt="Delete">';
                    },
                    events: function () {
                        // TODO: add some events...
                    }
                }
            ]
        });
    }).fail(function (error) {
        console.error(error);
    });

    return deferred.promise();
}

想通了!它链接到:

 searchText: 'Search for a member...',

这将使用内容自动填充搜索栏,并尝试根据该搜索词查找用户。删除此 属性 解决了问题。