6

私はピラミッドを学んでいて、人々にマコの代わりにカメレオンを使わせようとしているようです。これまでのところ気に入っています。if ループや for ループなどの基本的なことはテンプレートで実行できますが、メッセージ フラッシュを表示する方法がわかりません。

ピラミッド チュートリアルでは、todo リストでこれを行いますが、wikiの例では行いません。セッションに関する指示に従って、例として todolist チュートリアルを使用して、アプリでメッセージを作成することができましたが、テンプレートでそれらを受信できません。一言で言えば、カメレオンがこのマココードに相当するものを持っているかどうか疑問に思っています:

  % if request.session.peek_flash():
  <div id="flash">
    <% flash = request.session.pop_flash() %>
    % for message in flash:
    ${message}<br>
    % endfor
  </div>
  % endif
4

1 に答える 1

10

カメレオンの(テストされていない)同等物は次のとおりです。

<div id="flash" tal:condition="request.session.peek_flash()">
  <span tal:omit-tag="" 
        tal:repeat="message request.session.pop_flash()">
      ${message}<br>
  </span>
</div>

tal:omit-tag属性はオプションです。<span>リピートをアタッチするためのダミータグとしてのみ使用されるため、出力からタグを削除します。それをドロップすることにより、カメレオンテンプレートの出力はマコの例と一致します。

テンプレート言語がどのように機能するかの概要と完全な仕様については、 Chameleonのドキュメントを参照してください。

于 2012-06-26T12:30:44.743 に答える