Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

mayaaのinclude

今日はmayaaの検証。。。includeでちょっと躓いたのでメモ。


コンポーネントで動的な表示を扱ってみましょう。スクリプトを使う方法などは通常のテンプレートと同じですので、特別なのは親 (利用する側) のページとの値の受け渡しです。基本的な考え方としては、コンポーネントを利用する m:insert タグの位置に、コンポーネントの内容を直接書いた場合と同じです。

includeを使って外部HTMLを取り込む際、(個人的なイメージとして)「取り込まれるHTML」を包み込む要素が必要みたい。
たとえば、次のようなmayaaファイル

<?xml version="1.0" encoding="UTF-8"?>
<m:mayaa xmlns:m="http://mayaa.seasar.org">
  <m:doRender m:id="message2" />
  <m:write m:id="message" value="Hello Mayaa! ${ 2 + 3 }" replace="false" />
</m:mayaa>

があったとする。で、includeされる側のHTMLで

    <span id="message">include2</span>

の部分を表示したい場合、それを包み込む要素が必要となる。つまり、用意するHTMLは

<html>
<body>
  <div id="message2">
    <span id="message">include2</span>
  </div>
</body>
</html>

とか、

<html>
<body id="message2">
    <span id="message">include2</span>
</body>
</html>

のように外側に要素を追加して、その要素にid属性を振ってやる必要がある。これで、

    <span id="message">Hello Mayaa! 5</span>

のように表示される、と。とりあえず、表示したい内容をbody要素の内側に書き、body要素にid属性を追加するのが一番簡単かな?
恥ずかしながら、2時間ほど悩んでました。。。 :-(