[mayaa-user:722] Re: insert プロセッサについて

suga [E-MAIL ADDRESS DELETED]
2008年 12月 13日 (土) 15:41:48 JST


suga です。

hkoudai さんの方法 (m:if で insert を分ける) だと、HTML の方は変更不要ですが、
コンポーネントが増える場合にやっぱり困りますよね。
方法としては以下のふたつが思いつきます。
いずれも textId にあたるものをパラメータかどれかスコープの attribute に
含めて条件分岐する形ですね。

 * hkoudai さんの案のものをさらにコンポーネントにまとめる
 * コンポーネントでテンプレート切り替え機能を使う

mayaa ファイルが大差ないなら後者の方がスマートですが、大きく変わるなら
前者の方が読みやすいかもしれません。

あと本筋から離れますが
> Mayaaのバージョンは1.1.0です。

最新は 1.1.22 ですので、バージョンアップをオススメします。
# 1.1.0 って二年以上前ですが、何か理由があるのでしょうか。

-- 
suga ( [E-MAIL ADDRESS DELETED] )



2008/12/11  <[E-MAIL ADDRESS DELETED]>:
>
> 田中と申します。初めまして。
>
> 現在開発中のプロジェクトでmayaaを使わせて頂いております。
>
> insert プロセッサについて質問させていただきます。
>
> 現在実装している箇所に
> 最善の方法が他にあるのではないかと思いメールしました。
>
> 処理内容としまして、
> 取得できたIDによってコンポーネントHTMLの切り替えをし、
> 表示を行っております。
>
> hello.html(現行)
> **********************************************************************
> <html>
> <body>
>  <span m:id="disIf">
>    <div id="insertHereContent"> </div>
>  </span>
>  <span m:id="disIf2">
>  <div id="insertHereContent2"> </div>
>  </span>
> </body>
> </html>
> **********************************************************************
>
> hello.mayaa(現行)
> **********************************************************************
> <m:if m:id="disIf" test ="${textId.equals('00001')}"/>
> <m:insert id="insertHereContent" path="./component.html"/>
>
> <m:if m:id="disIf2" test ="${textId.equals('00002')}"/>
> <m:insert id="insertHereContent2" path="./component2.html"/>
> **********************************************************************
>
> 私の行いたいことは、処理結果は同じなのですが、
> もっといい実装方法がないのかと思っております。
> 現行のソースですと、コンポーネントが増えれば増えるほど、
> mayaa、html共に修正しなければなりません。
> また、hello.htmlには共通のHeader等のデザインを記述しておりまして、
> templateSuffixは使えないかなと考えております。
>
> こちらで試したソースを記述します。駄目だったのですが。
> hello.html(試作)
> **********************************************************************
> <html>
> <body>
>    <div id="insertHereContent"> </div>
> </body>
> </html>
> **********************************************************************
>
> hello.mayaa(試作)
> **********************************************************************
> <m:beforeRender><![CDATA[
> var textId = request.textId;
> var textPath = "./component.html";
>
> if(textId.equals('00001')) {
> textPath = "./component.html";
> }
> if(textId.equals('00002')) {
> textPath = "./component2.html";
> }
>
> ]]></m:beforeRender>
>
> <m:insert id="insertHereContent" path="${textPath}"/>
>
> **********************************************************************
>
> 試作のようにpathを動的に設定してあげたいのですが、
> 可能でしょうか?
> また、別に良い方法がありました教えて頂きたいです。
> Mayaaのバージョンは1.1.0です。
>
> ソースを直接書き、長くなってしまいまして
> 申し訳ありません。
>
> よろしくお願い致します。
>
>
>
>
>
>
> --------------------------------------
> Power up the Internet with Yahoo! Toolbar.
> http://pr.mail.yahoo.co.jp/toolbar/
> _______________________________________________
> mayaa-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/mayaa-user
>


mayaa-user メーリングリストの案内