Tapestry で構築された既存の Web アプリケーションから始めています。
必要な Javascript をどこに置くべきかわかりません。
基本的に、このアプリケーションにはテキスト領域にデータをキャプチャする単一のページがあり、そのテキスト領域で何かを行うための JavaScript ライブラリを含めたいと考えています。
タペストリー アプリに JavaScript を追加する方法は何ですか? サンプルまたはリンクは大歓迎です。
チャウ!:)
Tapestry で構築された既存の Web アプリケーションから始めています。
必要な Javascript をどこに置くべきかわかりません。
基本的に、このアプリケーションにはテキスト領域にデータをキャプチャする単一のページがあり、そのテキスト領域で何かを行うための JavaScript ライブラリを含めたいと考えています。
タペストリー アプリに JavaScript を追加する方法は何ですか? サンプルまたはリンクは大歓迎です。
チャウ!:)
クライアント側の動作をコンポーネントに追加するには、通常、アプリのパッケージにコンポーネント mixinクラスを作成します。mixins
package my.tapestry.basepackage.mixins;
public class TextAreaResizer {
}
コンポーネント テンプレートで、次のように mixin をテキスト領域に追加します。
<textarea t:type="TextArea" t:value="..." t:mixins="TextAreaResizer" />
JS ライブラリをページにロードするには、次のように@IncludeJavaScriptLibraryアノテーションを mixin で使用できます。
@IncludeJavaScriptLibrary("context:textarearesizer/js/textarearesizer.js")
public class TextAreaResizer {
}
初期化コードを実行する必要がある場合は、次のようにRenderSupportサービスを介して実行されます。
@IncludeStylesheet("context:textarearesizer/css/textarearesizer.css")
@IncludeJavaScriptLibrary("context:textarearesizer/js/textarearesizer.js")
public class TextAreaResizer {
@Inject
private RenderSupport renderSupport;
@InjectContainer
private TextArea textArea;
@AfterRender
void addScript() {
this.renderSupport.addScript(
"new TextAreaResizer('%s');", this.textArea.getClientId());
}
}
この場合、クライアント ID が必要なため、テキスト フィールド コンポーネントも mixin クラスに挿入しました。
また、T5 docsの AJAX & Javascript セクションもチェックしてください。