[mayaa-user:654] Re: replace属性に${***}を記述したい

suga [E-MAIL ADDRESS DELETED]
2008年 5月 8日 (木) 08:58:11 JST


suga です。

引用の順番前後しますが

2008/5/7 原田昌知 <[E-MAIL ADDRESS DELETED]>:
>  何をやりたいのかというと、テーブルのtrにIDをつけて、ifで表示条件を
>  指定する際に、replaceも同条件で指定できると、falseのときは、trごと消えて、
>  trueのときは、trを残せます。

ちょっと記述は増えますが、下記のように記述すれば実現できます。

<m:if m:id="xxx" test="${...}">
    <m:echo><m:doBody/></m:echo>
</m:if>

if の中でも echo を使って元のタグを再現できるので、attribute との
組み合わせもできます。
プロセッサをネストするため doBody が必須になるのがやや難点ですけど。


>  m:ifタグのreplace属性にスクリプトを記述したいのですが、現在は対応していませんね?
>  対応は難しいでしょうか?

こちらは現状では簡単ではありません。

内部的な話をすると、replace はビルド時に静的解決をしています。
これを動的解決に変えることになりますので、すべてのプロセッサで
使える replace の (内部的) 動作を変更するのは結構大変です。
if 限定なら難しくはないのですが、それは使う側としていびつかなと。


ちなみに if と echo を組み合わせた echoIf という拡張プロセッサを
作る計画がありテスト実装もしたのですが、進んでいません (^^;
http://suga.parfe.jp/td/index.cgi?date=20080303#p02


# extensions サブプロジェクトの協力者募集中です。

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


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