5

Mustacheを使用してアイテムの配列を表示しようとしていますが、コンマ区切り文字を使用して表示したいと思います。

これが私のオブジェクトです:

{"items": [
    {"display": "Item 1"},
    {"display": "Item 2"},
    {"display": "Item 3"},
    {"display": "Item 4"}
]}

そして、これが私のMustache JSテンプレートです:

{{#items}}{{display}}, {{/items}}

残念ながら、これは次のようにレンダリングされます:

Item 1, Item 2, Item 3, Item 4, 

視覚的に奇妙に見えるので、最後の「、」を削除したいと思います。

関数を試してみましたが、配列ではなく「{{items}}」というテキストが表示されましたitems

これどうやってするの?

4

2 に答える 2

6

あなたは口ひげ関数を使うことができます。これらは他のセクションと同様にテンプレートで定義され、ラップされたコンテンツで実行されます。あなたの場合、それは次のようになります:

{
  "items": [
    {"display": "Item 1"},
    {"display": "Item 2"},
    {"display": "Item 3"},
    {"display": "Item 4"}
  ],
  "trim": function () {
    return function (text, render) {
      return render(text).replace(/(,\s*$)/g, ''); // trim trailing comma and whitespace 
    }
  }
}

次に、Mustacheマークアップは次のようになります。

{{#trim}}{{#items}}{{display}}, {{/items}}{{/trim}}

そして、あなたの出力はあなたが求めているものになります:

Item 1, Item 2, Item 3, Item 4

jsfiddleでチェックしてください。

于 2014-09-29T21:30:16.973 に答える
1

これを解決する2つの方法をよく知っています。最初は、独自のイテレータヘルパーをプログラムすることです(これが最良の解決策です)。そして、sencondは、後続のコマを手動で(DOM処理を使用して)削除することです。

javascript($("selector").html())でテキストを見つけてスライスするだけです。

var html = jQuery("selector").html();
html = html.slice(0, html.length-1);

そうすれば、最後の文字をカットできます。

于 2013-01-09T03:08:00.713 に答える