1

新しくリリースされたFuel UX 3.1を Web アプリケーションで使用しています。バックエンドからのデータを使用して Repeater ウィジェットをセットアップできましたが、一度しかレンダリングできません。

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

したがって、このコード ブロックはリピーターをレンダリングしますが、この後に dataSource を変更して新しい値で再度レンダリングすることはできません。

4

2 に答える 2

4

電話してみることができます

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

データソースをリロードします。私のために働きます。

于 2015-06-08T13:54:01.810 に答える
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
        });
    }
});

誰かが に興味を持っている場合、これは実際には単純な関数であり、Fuel UX リピーターが期待する関数にMyDataSourceデータを入れることができます。dataSource

var MyDataSource = new function (data, columns) {
    return function (options, callback) {
        ...
    }
}
于 2014-10-18T11:50:32.763 に答える