0

特定のテンプレートにのみコンバーターやテンプレートを渡そうとしています。APIによると、ヘルパーのみを渡すことができますが、コンバーターやテンプレートは渡すことができません。

これを行う方法はありますか、または将来これをサポートする予定があるかどうかを誰かが知っていますか?

注意$.views.templates({...})orを介してグローバルにそれらを渡すこと$.views.converters({...})は、実際にはオプションではありません。なぜなら、多くの、おそらく名前が競合するテンプレートとコンバーターにさえ道を譲るからです。

4

1 に答える 1

2

テンプレートでコンバーターを宣言できます。コンバーターはテンプレートに対してプライベートになります。テンプレートの登録: $.templates()を参照してください。「高度なシナリオ: プライベート リソースとテンプレートの関連付け」を探します。

さらに、コンバーターを登録するための API :$.views.converters({...})コンバーター (または一連のコンバーター) をグローバルに登録することも、特定のテンプレートだけをローカルに登録することもできます。「親テンプレートのプライベート リソースとしてコンバーターを追加する」セクションを参照してください。それらをテンプレートに対してローカルまたはプライベートにするには、converters() 呼び出しの最後のパラメーターとしてテンプレートを渡します。

したがって、テンプレートとともに宣言された独自の特別なコンバーターを持つテンプレートを次に示します。

$.templates({
  myTemplate: {
    markup: "Use my converter {{myconv:name}}",
    converters: {
      myconv: function(val) { return myCalculatedValue; }
    }
  }
});

現在{{myconv:...}}は特定のものmyTemplateであり、他の場所では利用できません。

ここで、「myconv」を動的に置き換えたいとしますmyTemplateconverters()APIを使用していつでも追加/変更できます。

$.views.converters(
  "myconv",
  function(val) { return myNewUpdatedCalculatedValue; },
  $.templates.myTemplate // Only override it for myTemplate, not globally...
);

関連するリンクを次に示します。

于 2013-10-09T01:25:19.807 に答える