0

jquery.pagelessプラグインを使用しています。コントローラのpaginateメソッドによって生成されたパラメータを取得することにより、無限スクロールを実装します。

ユーザーIDなどのカスタムパラメーターをページレス関数に渡そうとしています。これは、次のようにjs.erbに関数をロードすると機能します。

$('#relationship_list').pageless({ totalPages: "<%= @reviews.count %>"/5+1
                       , url: '/reviews'
                       , params: {id: "<%= params[:id] %>"}
                       , loaderMsg: "loading"
                       });

これは希望どおりに機能します。ただし、ページをリモートでロードしたくないので、これをJavaScriptで目立たないように実装する方法を見つける必要があります(スクリプトをビューに直接統合したくないので、コードをapplication.js)。

つまり、<%= params =>のようなコードを、ページレス呼び出しがコントローラーから読み取ることができる変数に「変換」する方法を見つける必要があります。しかし、どのように?私は本当にこれを行う方法がわかりません。

これは、jquery.pagelessをすでに知っている人にとっては最良の質問だと思います。一般的であるため、この投稿に自分のコードを追加しても意味がありません。同意しない場合はコメントしてください。

4

1 に答える 1

0

これが私が選んだ解決策です。これが適切な方法であったかどうかに関するヒントは大歓迎です。

if($('#relationship_list').length){
    $.ajax({
            type: 'GET',
            url: '/users/'+$('.user_info').attr("id"),
            dataType: 'json',
            success: function(response){
                $('#relationship_list').pageless({ url: '/reviews'
                                , totalPages: response["count"]/5+1
                                , loaderMsg: "loading"
                                , params: {id: response["id"]}
                });
            }
    });     
}

これは、コントローラーにajax呼び出しを行い、キーパラメーターを使用してjsonパラメーターをレンダリングします。次に、これらのパラメーターを使用して.pageless関数を実装します。

元のユーザーIDを取得するために、実際にはユーザーIDを含むdivがあるので、ページからそれを取得することに注意してください。ユーザーIDは州の秘密ではありませんが、誰かがhtmlパラメーターを取得する方法についてのヒントを持っている場合(IDは私のrailsコードのparams [:id]にあります)私は非常に感謝します

于 2013-03-25T17:48:14.947 に答える