0

jquery-ujs を使用した Rails 3 アプリがあり、実行時に ajax 呼び出しのデータ型を動的に指定できるかどうか疑問に思っていました。私のリンクは、ajaxイベントを次のようにバインドすることにより、すべて目立たなくなります。

item.bind("ajax:beforeSend", function(e, request, settings) {
    ...
});

残念ながら、デフォルトの dataType は json であり、ajax 呼び出しの直前にこれを変更できるかどうか疑問に思っていました。リンクごとに、これをそのまま実行できることはわかっています。

<%= link_to('My Link', path,
        :remote => true,
        :method => :put,  
        :id => 'my-link',
        'data-type' => 'html', 
        :class => 'button') %>

しかし、すべてのリンクでそれを行う必要があるため、これはあまり DRY ではありません。

このフィールドをグローバルに設定できることがわかりました。

$.ajaxSetup({ dataType: 'html' });

しかし、 bind メソッド内で、またはアイテム自体でこれを行う方法を誰かが知っているかどうか疑問に思っていましたか?

(私がこれを書いているときに) 頭に浮かぶ唯一のことは、JS のタグに data-type 属性を追加することですが、JS が実行されるまでに ajax が既にセットアップされているかどうかはわかりません。

何か案は?

4

1 に答える 1

0

私にとっては、手早く汚い方法です:URLにサフィックスを追加します:

"#{link_to some_path}.html"
"#{link_to some_path}.js"
于 2012-04-10T07:41:27.897 に答える