The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Waft::jQuery - jQuery extensions for Waft

SYNOPSIS

    package MyWebApp;

    use Waft with => '::jQuery'; # for Waft 0.9905 or later

or

    package MyWebApp;

    use base qw( Waft::jQuery Waft );

DESCRIPTION

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

Ajax API

  • Waft.jQuery.get

    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 ...

    のように出力される。

  • Waft.jQuery.post

    Arguments: action, [data], [callback], [type]

    jQuery の Ajax API jQuery.post を拡張する API。 仕様は API Waft.jQuery.get と同じ。

METHODS

  • output_jquery_sync_script

    メソッド Waft.jQuery.get もしくは Waft.jQuery.post で起動した Waft のアクションメソッド内でオブジェクト変数を変更した場合に、 レスポンスにこのメソッドの出力を加える事でオブジェクト変数の内容を 反映させる事ができる。

        <script><% $self->output_jquery_sync_script; %></script>
  • jquery_sync_script

    メソッド output_jquery_sync_script が出力するスクリプトを取得する。

        my $jquery_sync_script = $self->jquery_sync_script;
    
        $self->output("<script>$jquery_sync_script</script>");

AUTHOR

Yuji Tamashiro, <yuji@tamashiro.org>

COPYRIGHT AND LICENSE

Copyright (C) 2008, 2009 by Yuji Tamashiro

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.