2017-01-25 9 views
2

触媒を使用してAJAXリクエストを処理して、いくつかの動的html生成トラフjQueryを解決しようとしています。簡単に言えば、<select> </select>タグ(jQueryを通じて作成され、他のいくつかのフィールドと共にユーザー入力に作成されます)を記入する必要があります。私は...私は私が必要とするデータのためのシンプルなAJAX要求を実行するためのタグを作成するコードブロックを拡張することができ、このような何か考え、このタグ記入するには、次のCatalystを使用したAJAX応答のラッパーの回避

$.post("../ajax/simple_query", 'get="family_precedents"'); 

をそしてperlスクリプトで、この非常に単純な要求を処理します私は通常のようにCatalyst :: Requestを使用しています。

問題は、AJAXレスポンスにはCatalyst Appラッパーが含まれているため、理解して使用するのが面倒です。 触媒を使用したAJAX応答のラッパーを避ける方法はありますか?

+1

ラッパーは、テンプレートラッパーを意味しますか?あなたのコンテンツはHTMLのブロックですか?それはテンプレートを介して作成されますか、またはあなたのコントローラで直接設定しますか?あなたの質問を編集し、ページをレンダリングするコントローラの部分とテンプレートを含めてください。 – simbabque

+0

はい、私はTemplate Wrappersを意味しました。コンテンツを作成したAjaxレスポンスは、javascriptで直接解析するさまざまな値を含む文字列によく似ています。 –

+0

テンプレートでも作成されていない場合は、別のビューを使用することもできます。 aja [xj]には通常、https://metacpan.org/pod/Catalyst::View::JSONを使用します。 – simbabque

答えて

2

私は触媒のドキュメントに少し詳しく答えを見つけました。 : - > {} no_wrapper

ソース

[% IF no_wrapper or template.name.match('\.(css|js|txt)'); 
    debug("Passing page through as text: $template.name"); 
    content; 
ELSE; 
    debug("Applying HTML page layout wrappers to $template.name\n"); 
    content WRAPPER site/html + site/layout; 
END; -%] 

そして$ C->スタッシュとともに no_wrapper値を送信する:あなたはこのように、条件付きで表示されるようにラッパーを構成することができますが判明http://wiki.catalystframework.org/wiki/gettingstarted/howtos/disabling_a_tt_wrapper_for_ajax_requests

+2

私はちょうどそれを書くつもりでした。あなたがそれを自分で見つけたことがうまくできました。 :) – simbabque

+1

しかし、AJAX用の別のビューを作成することもできます。私はそれが意味を成すユースケースがあると信じています。 – simbabque

関連する問題