問題タブ [template-tal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
7 に答える
1219 参照

java - ZPT (属性言語) に似た Java テンプレート ライブラリ

私は最近 Python でZPTを使用しており、テンプレート言語が大好きです。Java に似たものを探していましたが、気に入ったものを実際に見つけることができませんでした。最も近いのはFreeMarkerです。

私が調べた FreeMarker やその他の Java テンプレート エンジンの問題は、準拠していない XML を許容する JSP スタイルの構文でした。有効な xml を必要とする「属性」言語であるように、Zope ページ テンプレートに似た Java テンプレート エンジンが存在するかどうか疑問に思っていました。

0 投票する
3 に答える
3622 参照

templates - TALESを使用してtal:attributesの同じ属性に複数の値を設定する方法

1つの要素に複数のcssクラスを設定しようとしています。

残念ながら、これは機能しません。次のようになります。LanguageError: Duplicate attribute name in attributes.

これらの3つのケースを1つの式に組み合わせると、6つの異なるcss状態があるため、非常に複雑になります。

  • 最初の+アクティブ
  • 最初
  • 最後+アクティブ
  • 過去
  • アクティブ
  • (無し)

私が考えることができる2つの可能な解決策があります:

->各組み合わせをインラインで確認します。

->結合されたcssクラスを返すメソッドを作成します

さて、より良いアプローチがありますか?そうでない場合は、これら2つのうちどちらが優れていますか(おそらく後者の方が、インラインスクリプトがより複雑になるかのように、読み取り不能/管理不能になります)。

ところで、についての良いリソースと例はありますかChameleonhttp://chameleon.repoze.org/docs/latestTALES以外)

0 投票する
1 に答える
1387 参照

python - ピラミッドとカメレオンの ajax ウィジェット

サーバー側でカメレオンとピラミッドに支えられた ajax 'ウィジェット' を簡単に作成できるようにしたいと考えています。

Pyramid は、ウィジェットの作成を容易にする配管コードを提供していますか?

私の現在のアプローチは、レンダラーとして home.pt を使用するホーム ビューを持っていることです。home.pt は、ページ構造を定義するマクロ base.pt を使用し、home.pt が入力するスロットを提供します。base.pt は、私が作成したログイン 'widget' マクロも使用します (以下の account_login_widget.pt を参照)。

理論的には、これは素晴らしいことのように思えます...多くのページで使用できる再利用可能なログイン ウィジェットがありますが、現在のアプローチはうまく機能しません。私のログイン ウィジェットは、そのレンダラーで ${username} などの変数を使用します (サーバーが定義する必要があります)。ログイン ウィジェットとそのレンダリングをできる限り独立させたいと考えています。しかし、私の現在のやり方では、ホーム ビュー コードはログイン ウィジェットのニーズを認識し、ユーザー名、formrender、その他の変数をディクショナリに提供する必要があります。確かに良くない…

私は正しい考えに近づいているように感じますが、いくつか欠けているものがあります...

何かご意見は?

base.pt:

home.pt:

account_login_widget.pt:

0 投票する
2 に答える
799 参照

template-tal - PHPTAL 動的テーブル生成

私は表形式のデータ用にさまざまなテーブルをかなり作成していることに気づき、(PHP コードではなく) 呼び出し元のテンプレートで定義されたデータ構造に基づいてテーブルを動的に作成できるマクロを作成したいと考えています。簡単な例を次に示します。

私が探しているのは、dataPHPTAL 自体から (配列構造を) 定義する方法です。これを PHP でテンプレート変数として定義できない理由 (例$tpl->data = array(...)) は、データの順序とレイアウトがテンプレートに属しているためです。たとえば、テーブルの X 軸と Y 軸を反転させたい場合、PHP コードではなく、テンプレートを変更するだけで済みます。


編集:

例を挙げると、任意のテンプレート変数foobar、および があるとしbazます。これらをテンプレートで次のように使用できます。

これらの変数を行と列の 2 次元データ構造に構築し、テーブル生成マクロに入力するにはどうすればよいですか? このようなもの(注:これは実際には機能しません):

マクロからの目的の出力は次のとおりです。

後で、 と の位置を交換しfooたいbar場合は、テンプレートを変更して の定義を に変更するだけで済みdataますdata [bar, foo; baz]

0 投票する
1 に答える
2075 参照

html - PHPTAL 条件属性

次のような金属マクロがあるとします。

そして、このようなマクロを使用するテンプレート:

結果の HTML が次のようになるように、マクロに何を追加する必要がありますか。

式を使用したり、独自の TALES 関数を定義したりするさまざまな方法を試しましたphp:が、探しているものが得られないようです。

ブラウザは、selected属性が実際に選択されていると表示されるオプションを扱います。つまりselectedselected=""selected="foo"、 などがすべて選択されたオプションになります。PHPTAL にはこれを解決する構文が組み込まれていますが、これは空の場合にattribute value | nothingのみフォールバックします。値と比較する必要があるため、これは役に立ちません。このようなもの(動作しません):nothingvalue

0 投票する
2 に答える
1112 参照

python - TALで定義された変数を使用して辞書のキーの値を取得するにはどうすればよいですか?

私はPythonで辞書を定義しました:

呼び出されたvarを使用して定義された別の変数tal:defineがあります。これは「a」または「b」のいずれかです。次の操作を実行しようとするとエラーが発生します。

(fooは「1」または「2」になります)私は.を取得しKeyError: '${var}'ます。dic[$var]、などを試しましたが、dic[var]すべて機能しません。tal:define以前に辞書のキーとして使用して定義された変数を使用して、その値を取得するにはどうすればよいですか。

0 投票する
1 に答える
1401 参照

python - カメレオンでベースレイアウトテンプレートを使用する

ピラミッドのドキュメントには、UXに関する優れたチュートリアルがあります。

http://docs.pylonsproject.org/projects/pyramid_tutorials/en/latest/humans/creatingux/step07/index.html

私が気づいたことの1つは、チュートリアルで、コード内で「グローバルレイアウト」を明示的に設定して渡していることです(以下を参照)。ここのドキュメントに示されているように、私は常に「load」コマンドを使用していたので、これは異常で不要だと思いました。

http://chameleon.repoze.org/docs/latest/

これは単なる個人的な好みの問題ですか、それともこのように「グローバルレイアウト」を設定して使用することには本当の利点がありますか?

チュートリアルベースビュークラス:

チュートリアルテンプレートファイル:

しかし、私のテンプレートファイルでは、次のものを使用しています。

0 投票する
1 に答える
472 参照

python - Pyramid Web Frameworkのカメレオンテンプレートに関する詳細なドキュメントはありますか?

ピラミッドのドキュメントには、カメレオンテンプレートの簡単な紹介しかありません。

詳細なドキュメント/チュートリアルはありますか?

0 投票する
1 に答える
918 参照

python - Pyramidの複数のビューからレンダリングされたコンテンツを1つのベーステンプレートに挿入します

以下のようなことをしたいのですが。

次のルートを構成しています。

次のビュー:

基本テンプレート'templates/base.pt'があります。

私の見解では、次のコンテンツをID「content」でdivに挿入したいと思います。

上記のhome_viewfoo_viewを変更して、独自のテンプレート(home.pt、foo.pt)をbase.ptに挿入できるようにするにはどうすればよいですか?どういうわけか、 ${user_id}などのデータもbase.ptに転送する必要があります。ビューを定義するときにラッパー引数をいじっていましたが、それがどのように機能するかを理解できませんでした。

0 投票する
1 に答える
322 参照

python - 代わりにタグ付きのPOTファイル

Pyramidプロジェクトのテンプレートファイルからテキストを翻訳しようとしています。この例のように多かれ少なかれ:http://docs.pylonsproject.org/projects/pyramid_cookbook/en/latest/chameleon_i18n.html

<dynamic element>.potファイルのコメントからを削除するにはどうすればよいですか?残りのコードとそのタグを確認したいと思います。

私のカメレオンテンプレート(.pt):

私は、setup.pyで次のオプションを使用してメッセージを抽出するためにBabelとLinguaを使用しています。

そして、私の.potファイルの関連する出力は次のようになります。