問題タブ [ujs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
326 参照

ruby-on-rails-3 - Rails 3.1 をバックボーンでアップグレードすると、ujs と remotipart ファイルが見つかりません

数週間前に Rails 3.1.3 にアップグレードし、バックボーンを使用するためにたくさんのものを移動しました。

おおむね順調に進んでいますが、rails-ujs.js ファイルと remotipart.js ファイルが assets ディレクトリにないことに気付きました。

古いpublic/javascriptsフォルダや他の場所でそれらを探しましたが、見つけられませんでした。

また、gitリポジトリでファイルが見つからないようです。これらのファイルを Javascript でダウンロードできる場所はありますか? それともレールで生成する必要がありますか? それらを再生成する方法はありますか?

---------------これは私のエラーかもしれません------------------------

アセットがパックされていると、ビューソースからファイルを開くだけではなく、すべてが存在しないと表示されることに気付きました。

0 投票する
1 に答える
257 参照

jquery - Rails ujsでインスタンス変数を使用するには?

これは、以前にhtml.erbで行っていたことです。

ほとんどの場合、scriptタグをcontent_forブロックに配置します。

これを目立たないようにしたい場合、 html.erbにスクリプトタグを含めることはできません。スクリプトは javascript ファイルにあります。しかし、@value_from_instanceを JavaScript ファイルに転送するにはどうすればよいですか?

これをdata -attributeに保存するのは、これを行う唯一のオプションですか?

また、この目的のためにajaxリクエストではなく、ページの読み込み時にこれを行いたい

0 投票する
1 に答える
786 参照

jquery - jsを動的に挿入された:remoteフォームに再バインドします

Rails3.2では標準のjquery-railsの目立たないアプローチを使用しています。

が付いたページにフォームがある場合は、うまく機能します:remote => true。しかし、ajaxアクションがある場合は、ページに新しいフォームを挿入します。ajaxバインディングが再接続されていないようです。

Rails UJSにページ上のすべてのリモートフォームに「再バインド」するように指示する方法はありますか?

ところで、これはlink_to:remoteなどでも同じです。ありがとう!

0 投票する
2 に答える
850 参照

ruby-on-rails - 動的に追加されたコンテンツのための Rails UJS

Rails 3.0 とプロトタイプ ujs rails.js スクリプトを使用しています。

link_to "...", :remote => trueページがロードされた後にページに追加されるリンクがいくつかあるため、その後、すべてのリンクrails.jsに ujs イベントを添付しました。a[data-remote]

rails.js で新しいリンクを再スキャンするにはどうすればよいですか?

rails.js は 1 つの無名関数で構成されているようで、直接呼び出すことはできません。

これを行う唯一の方法は、すべての rails.js を独自の関数にラップして、ページの読み込み時に *そして* 新しいリンクを追加したときに呼び出せるようにすることです。

これは合理的なアプローチのように思えますが、私がこの問題を抱えた最初の人であり、それを行うための標準的な方法がないとは信じられないため、躊躇しています...

0 投票する
0 に答える
214 参照

jquery - UJS でパーシャルをレンダリングする際の不正な HTML

コントローラーでゴール オブジェクトを作成し、_create.js.erb をレンダリングするページに ajax 呼び出しがあります。

_show_new_goal.html.erb パーシャルは次のとおりです。

このパーシャルによってレンダリングされる HTML は壊れています。

編集 1 パーシャルを使用して _show_new_goal.html.erb パーシャルを含めてフォームをレンダリングしない場合、整形式の HTML が返されます。IE では、整形式の HTML が返されます。

返された HTML:

0 投票する
1 に答える
223 参照

ruby-on-rails - URLパラメータの問題を伴うRails UJS

ロジックを表示するかどうかを URL パラメータに大きく依存している、基本的な作業用 Rails アプリがあります。UJS と link_to remote => true を使用して ajaxify できましたが、これらのリンクをクリックすると、表示された URL が更新されず (これは理にかなっています)、他のパーシャルは URL パラメーターを読み取れません。

たとえば、index.html.erb(UJSの前に、それがどのように機能するかを見ることができます)、

  1. 私のnavbarには、このように複数の:category用のlink_toがあります

    "top10", :action => "index", :category => catname) %>
  2. URL に params[:category] ​​がある場合、左側にリストを表示し、このリストの ID をクリックすると、右側の DIV が表示されます。

  3. パラメータがない場合は、私がランディング ページ (ある種のホームページ) と呼んでいるものをレンダリングします。

これで問題なく動作しますが、navbar リンクに remote => true を追加すると、左側の div では機能しますが、何らかの理由で URL パラメータが表示されないため、#3 (ランディング ページ) が常に表示されます。また、表示される URL は常に同じであるため、すべての link_to_unless(params...) が機能しません。

USJとは:

index.html.erb

index.js.erb

0 投票する
2 に答える
24495 参照

ruby-on-rails - Rails 3リモートフォーム:コンテンツタイプを指定するにはどうすればよいですか?

Rails 3.2を使用しています。フォームがあり、ajax経由で投稿して、コントローラーにjsonを返してもらいたいです。

私は次のようなform_forヘルパーを使用しています:

私のオブジェクトコントローラのcreateメソッドは次のようになります。

フォームは期待どおりにajaxlyに送信しています。しかし、コントローラーはjsonではなくhtmlを返しています!

firebugを使用してリクエストを検査し、ajaxリクエストのContent-Typehttpヘッダーがapplication/htmlに設定されていることを確認します。

これに関するドキュメントはかなりまばらです。:format =>:jsonは、フォームアクションに「.json」を追加するだけで、実際にはhttpヘッダーを変更しないようです。

また、:content_type =>:jsonを試しましたが効果はありません。

htmlを返したい場所が他にもあるので、コントローラーをハードコーディングしてjsonを返すことはできません...

では、form_forを使用するときにコントローラーにjsonをレンダリングするように指示する方法を知っている人はいますか?

助けてくれてありがとう

0 投票する
1 に答える
236 参照

ruby-on-rails - rails3.1とjqueryを使用してAjaxが返したデータを処理する方法

data-URLとともにdata-remoteを使用して、jquery ujsを介してAjax呼び出しを行っていますが、機能しています。

しかし、戻り値をどのように処理するのか理解できません。

たとえば、HTMLを返すコントローラーアクションがあります-Ajax呼び出しが終了したときに既存のdivのHTMLを置き換えるためにJS関数(私は推測します)をアタッチするにはどうすればよいですか?data-typeを:htmlbtwに設定しました。

ネットワークトラフィックをスニッフィングすることでHTMLが返されていることがわかります。

(jquerys ujsバージョンを使用するのではなく)独自のAjax呼び出しを作成することで機能するようになりましたが、車輪の再発明をしたように感じます-しかし、jquerysデータリモートを使用して呼び出しを行う方法が見つかりません私にとって、そしてそれからそれをdivを更新させるために(例えば)。

ありがとう、

イアン

0 投票する
3 に答える
4606 参照

ruby-on-rails - Rails UJS link_to:remoteはAJAXGETと通常のGETを実行します

編集:

以下の有益なコメントに加えて、SteveSchwartzによる2つの優れた記事がすべてを明確に説明しています。

Rails 3.2.2 / jquery-rails 2.0.1 (jquery 1.7.1を使用)

フォームにファイルアップロードフィールドを追加するためのAJAXリクエストを送信するリンクがあります。 ページ関連のすべてが正しく機能します。新しいフォームフィールドのHTMLフラグメントがサーバーから取得され、フォーム内のdivに追加されます。

でも、

サーバーは2つのGET要求を受信します。1つはAJAXリクエストです。もう1つは、「通常の」アンカー要素GETのようです。「通常の」GETはRailsUJSによって停止されると思いました。

通常のリンクアクションを自分で無効にする必要がありますか?誰かが私が誤解していることと、代わりに[2番目の要求を防ぐために]何をすべきかを説明してもらえますか?

私はこの質問を見ました:Rails 3 UJS-コントローラーはlink_to:remoteによって2回呼び出されます。そこで、アセットパイプラインのコンパイルを変更してみconfig.assets.debug = falseましたが、効果がありませんでした。さらに、これはダブルAJAX GETリクエストではないので、別の問題だと思います。

助けてくれてありがとう!

サーバーログスニペット:

ブラウザのHTML:

意見:

コントローラーのコーヒースクリプト:

0 投票する
1 に答える
203 参照

jquery - Rails 3.2 UJS -> 動的 URL の ID を取得できますか?

リソースの POST URL を作成する必要があり、remote-true を追加するアイテムの val() が URL リソースの ID になります。これを行うためのレールショートカットはありますか、それとも私がしなければならないだけですか

jQuery ajax呼び出しで?