如何在Fuel UX转发器中重新加载数据

时间:2014-10-17 14:14:23

标签: javascript fuelux

我在网络应用程序中使用新发布的Fuel UX 3.1。我设法使用来自后端的数据设置一个Repeater小部件,但是我只能渲染一次。

$('#myRepeater').repeater({
    dataSource: dataSource
});

因此,这段代码会呈现转发器,但是在此之后我无法更改dataSource并使用新值再次呈现它。

2 个答案:

答案 0 :(得分:4)

您可以尝试拨打

$('#myRepeater').repeater('render') 

重新加载dataSource;适合我。

答案 1 :(得分:0)

嗯,它并没有真正回答我原来的问题,但这解决了我的问题。当我想用其他数据重新加载Repeater时,我实际上是用另一个dataSource创建一个新的。

所以我对服务器的新Ajax请求看起来像这样

$.ajax({
    url: '...some url...',
    type: 'post',
    data: JSON.stringify(payload),
    dataType: 'json',
    contentType: 'application/json; charset=utf-8',
    success: function (data) {
        var dataSource = new MyDataSource(data, columns);
        // the repeater already exists
        if ($('#myRepeater .repeater-canvas').contents().length !== 0) {
            var enclosingDiv = $('#myRepeater').parent();
            var markup = $('#myRepeater').repeater('destroy');
            enclosingDiv.html(markup);
        }
        // creating the repeater normally
        $('#myRepeater').repeater({
            dataSource: dataSource
        });
    }
});

如果有人对MyDataSource感到好奇,它实际上是一个简单的函数,它允许我将我的数据放入Fuel UX转发器所期望的dataSource函数中:

var MyDataSource = new function (data, columns) {
    return function (options, callback) {
        ...
    }
}