1

一部のプロジェクトでは、ビュー レイヤーにハンドルバーを使用し始めています。私たちは、いくつかのテンプレート化を行う 2 つの方法の間の岐路に立ち始めています。テンプレートを処理するためにパーシャルを使用しており、次のような小さな HTML テンプレートを使用しています。

<p id="{{name}}">
  <label for="{{name}}Input">{{text}}</label>
  {{#if info}}
    <small>{{info}}</small>
  {{/if}}
  <textarea name="{{name}}" id="{{name}}Input"></textarea>
</p>

別の開発者は、これにはパーシャルを使用するべきではなく、代わりにヘルパーを作成する必要があると感じています。

ヘルパーの方が入力パラメーターの処理が簡単であることがわかります (現在、何らかの形式の「インクルード」ヘルパーを使用して、追加の変数を使用してこれらのパーシャルを含めるようにしています)。しかし、HTML をコード内の文字列に書き込んでいるというのは、私には正しくありません。懸念事項をそこで適切に分離しているとは思いません。また、([Handlebars.Java][2] を介して) Java でハンドルバーを使用しているため、HTML はコンパイルされたコードに非常に多く、ビュー ファイルを編集するだけではありません。

ハンドルバーでテンプレートを処理する一般的に受け入れられている方法はありますか? パーシャルまたはヘルパー、または私が知らない何かがありますか?

4

1 に答える 1

0

まず、handlebars.java とは対照的に、handlebars.js ではパーシャルが大きく異なることを理解する必要があります。

handlebars.js では、独自のパーシャルを宣言し、コントローラーで必要な名前を付けて (通常は) 呼び出してから、ビュー内で呼び出します。handlebars.java では、パーシャルがビューで定義されており、基本的にパス属性を取得するだけのインクルードです。インクルードは通常、ほとんどのプロジェクトに不可欠であり、そのような重要な機能を削除してもメリットはないと思います。

また、多くの handlebars.js アプリで「すべてにヘルパーを使用する」という考え方を見てきましたが、すぐに維持するのが難しくなっています。ヘルパーは優れた機能ですが、控えめに使用する必要があります。可能な限り、組み込みのヘルパーを使用し、追加の抽象化されたロジックを必要としない方法でデータを構造化してみてください。

あなたの例を見ると、それはまさにパーシャルの正しい使用法だと思います。

于 2015-04-03T19:40:46.897 に答える