0

play-framework (1.2.4) に小さな問題があります。タグに別のタグを継承させ、これを別の Web ページを拡張する HTML ページに含めたいと考えています。説明する最良の方法は、スキーマを使用することです。

欲しかったアーキテクチャ

しかし、それは私が望むようには機能しませんでした。実際、test.tag ファイルの extends は、Screen.html のものを上書きしているようです。次に、すべての Screen.html のコンテンツが、main.html の#{doLayout /}代わりにblock.tag に含まれます。

私がやりたいことをする方法はありますか?ありがとう。


ソースは次のとおりです。

main.html

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <body>
    #{doLayout /}
    </body>
</html>

Screen.html

#{extends 'main.html' /}
<div id="Screen.html">
    #{test  /}
</div>

test.tag

#{extends 'tags/block.tag' /}
test.tag

ブロックタグ

<div id="test">
    #{doLayout /}
</div>

ページが呼び出されたときに生成される html

<div id="test">
    <div id="Screen.html">
        test.tag
    </div>
</div>

ご覧のとおり、main.html は含まれておらず、Screen がブロックに含まれています。何か案は ?


情報については、必要な出力:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <body>
        <div id="Screen.html">
            <div id="test">
                test.tag
            </div>
        </div>
    </body>
</html>
4

2 に答える 2

1

テンプレートで #{extends /} を使用することはできますが、タグでは使用できません。

別のタグの上にタグを構築する際の柔軟性を高めるには、次のようにします。

test.tag:

#{block }
test.tag
#{/block}

および block.tag:

<div id="test">
#{doBody /}
</div>

これにより、本体の一部を test.tag から block.tag に渡し、#{doBody /} を使用して block.tag のどこかに挿入します。

于 2013-03-01T07:35:32.830 に答える
0

#{extends}これは、Groovyエンジンが実行時に評価を行うためであると思います。これは、画面が拡張された後に発生するscreen.html呼び出しtest.tagであり、実行時にgroovyが最終的な拡張の勝利を決定します。block.tagmain.html

おそらく、構文解析時にセマンティックを評価するrythm プラグインを試してみたいと思うでしょう。extendsつまり、あなたの場合、リズムに問題はありません。

于 2013-02-28T19:18:49.057 に答える