13

このような部分的な口ひげボタンがあるとしましょう

<button name="{{name}}" class="btn">{{title}}</button>

このようにパーシャルを直接呼び出すときにタイトルを設定することは何とか可能ですか

<form>
....
{{> button|name=foo,title=Cancel}} {{> button|name=bar,title=Submit}}
</form>

これにより、このようなものや各ボタンのハッシュを作成する代わりに、ビューを作成することがはるかに簡単になります。

<form>
....
{{#buttons}}
    {{> button}}
{{/buttons}}
</form>
4

3 に答える 3

4

それができるかどうかはわかりませんが、口ひげ関数を使用して回避しました

JavaScript

var partial = "<div>{{value}}</div>";
var data = {some_data:[1,2,3]};
var items = {func:function (){
    return function (index){
        return mustache.render(partial,{value : data.some_data[index]});
    }
});
mustache.render(main,items);

口ひげ

{{#func}}1{{/func}}
{{#func}}2{{/func}}
于 2013-06-27T08:06:39.043 に答える
2

プレーンな口ひげではできませんが、ヘルパーを使用したハンドルバーでは可能です。Handlebars は Mustache の拡張であるため、パーサー ライブラリを置き換えるだけで切り替えることができます。ハンドルバーでの外観は次のとおりです。

JS ヘルパー (他の多くの言語の実装もあります):

Handlebars.registerHelper('button', function(title, options) {
    var attrs = Em.keys(options.hash).map(function(key) {
        key + '="' + options.hash[key] + '"';
    }).join(" ");
    return new Handlebars.SafeString(
      "<button " + attrs + ">" + title + "</button>");
});

テンプレートでの使用:

{{buttton title name="name" class="class"}}

詳細については、http: //handlebarsjs.com/をご覧ください。

于 2014-05-29T23:05:53.783 に答える
2

いいえ、Mustache を使用してテンプレートから変数ビュー データを直接渡すことはできません。

ただし、リストを使用してボタンをセクションとしてレンダリングすることは、Mustache を使用する場合の現在の適切な代替手段です。

部分: (buttons.mst)

{{#buttons}}
  <button name="{{name}}" class="btn">{{title}}</button>
{{/buttons}}

テンプレート:

<form>
  ...

  {{> buttons}}
</form>

意見:

buttons: [
  { name: 'foo', title: 'Cancel' },
  { name: 'bar', title: 'Submit' },
]

出力:

<form>
  ...

  <button name="foo" class="btn">Cancel</button>
  <button name="bar" class="btn">Submit</button>
</form>

ボタンが渡されなかった場合、パーシャルはレンダリングされないため、これは実際には非常にうまく機能します。

それが役に立てば幸い。

于 2018-09-13T15:30:55.700 に答える