我在 Web 应用程序中使用新发布的Fuel UX 3.1 。我设法使用来自后端的数据设置了一个中继器小部件,但是我只能渲染一次。
$('#myRepeater').repeater({
dataSource: dataSource
});
所以这段代码渲染了转发器,但是我不能在此之后更改数据源并使用新值再次渲染它。
我在 Web 应用程序中使用新发布的Fuel UX 3.1 。我设法使用来自后端的数据设置了一个中继器小部件,但是我只能渲染一次。
$('#myRepeater').repeater({
dataSource: dataSource
});
所以这段代码渲染了转发器,但是我不能在此之后更改数据源并使用新值再次渲染它。
你可以试试打电话
$('#myRepeater').repeater('render')
重新加载数据源;为我工作。
好吧,它并没有真正回答我原来的问题,但这解决了我的问题。当我想用其他数据重新加载中继器时,我实际上创建了一个新的,带有另一个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
,它实际上是一个简单的函数,它允许我将我的数据放入dataSource
函数中,这是 Fuel UX 中继器所期望的:
var MyDataSource = new function (data, columns) {
return function (options, callback) {
...
}
}