0

別の日、別の夜、JS と JQuery について頭を悩ませました。

HTML 経由でページを呼び出したい (そしてヘッダーにルートを表示する) 必要がありますが、js.erb スクリプトもロードします。または、js.erb スクリプトをリモートで呼び出したいが、http ヘッダーを変更して新しいルートを示したい。

これが必要な理由は次のとおりです: a) 学びたいのですが、これは私をイライラさせます b) 現在、ユーザーが更新すると、現在のページは表示されませんが、リモート => true 呼び出しが入ったページが表示されます;; ユーザーが覚えていないページに戻ると混乱します。

JQuery.pageless プラグインを実装しています。ユーザー/表示ページをリモートで呼び出すと、これが show.js.erb ファイルに入ります。

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

これで、このコードは A-OK です。show.js.erb からリモートで呼び出すと機能します。問題は、リモートではなく、html 経由で「ユーザー表示」ページをロードしたいことです。つまり、このスクリプトは読み込まれません。邪魔にならない別のロード方法を見つける必要があります。

繰り返しますが、コードにバグはありません。

うまくいけば、誰かが助けてくれるでしょう。また、注意してください: 誰かが gon gem を使用して問題に対処することについて書いています。私のためではありません - 私は宝石なしでこれを理解したいと思っています。

4

1 に答える 1

0

リモート呼び出し (リンクまたはボタンをクリックした後に AJAX GET 要求を想定している) を介してページの読み込みが機能しているように思えますが、これは正常に機能しますが、URL はアドレス バーで更新されませんか?

HTML5 の pushState() メソッドを探しています。

次のように show.js.erb ファイルを更新します。

$("#container").html("<%= escape_javascript(render '/users/show') %>");

history.pushState(null, "Page Title", "<%= user_path(@user) %>");
于 2013-03-26T10:19:24.287 に答える