
Waft::jQuery - jQuery extensions for Waft

package MyWebApp;
use Waft with => '::jQuery'; # for Waft 0.9905 or later
or
package MyWebApp;
use base qw( Waft::jQuery Waft );

Waft のアクションメソッドを起動する Ajax API を提供する。

Arguments: action, [data], [callback], [type]
jQuery の Ajax API jQuery.get を拡張する API。Waft の page と オブジェクト変数を jQuery.get に埋め込んで実行する。
jQuery.get の引数 url の代わりに action(SUBMIT の名前)を受け取る。
<form action="<% = $self->url %>" method="GET">
<input type="submit" name="on" />
</form>
<script>
Waft.jQuery.get('on'); // same as above
</script>
引数 data、callback、type は jQuery.get と同様に処理される。
Waft.jQuery.get( 'on', { id: 1 }, function (data) {
jQuery('#status').html(data);
}, 'html' );
Waft.jQuery.get は実際には JavaScript のメソッドではなく、 Waft::convert_text_part をオーバーライドする Waft::jQuery::convert_text_part がテンプレート処理時にスクリプトに 置き換えるためのフレーズである。
Waft.jQuery.get
は、
$self->output_jquery_request_script('get');
に置き換えられ、
( function (action, data, callback, type) { if ( jQuery.isFunction(dat ...
のように出力される。
Arguments: action, [data], [callback], [type]
jQuery の Ajax API jQuery.post を拡張する API。 仕様は API Waft.jQuery.get と同じ。

メソッド Waft.jQuery.get もしくは Waft.jQuery.post で起動した Waft のアクションメソッド内でオブジェクト変数を変更した場合に、 レスポンスにこのメソッドの出力を加える事でオブジェクト変数の内容を 反映させる事ができる。
<script><% $self->output_jquery_sync_script; %></script>
メソッド output_jquery_sync_script が出力するスクリプトを取得する。
my $jquery_sync_script = $self->jquery_sync_script;
$self->output("<script>$jquery_sync_script</script>");

Yuji Tamashiro, <yuji@tamashiro.org>

Copyright (C) 2008 by Yuji Tamashiro
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.