3

基本的に私はこれをしたい:口ひげのテンプレートでは、末尾のコンマなしでコンマ区切りのリストを表現するエレガントな方法はありますか? Ractive テンプレートで。

オブジェクトの場合

{
  "items": [
    {"name": "red"},
    {"name": "green"},
    {"name": "blue"}
  ]
}

「赤、緑、青」
を出したい 最終項目にいるのか知りたいので区切りを印刷するかどうか知りたいです。何かのようなもの:

{{#items:i}}{{name}} {{#i.is_last}},{{/i}}{{/items}}  
4

4 に答える 4

6

これを今すぐ簡単にテストすることはできませんが、次のようなものは動作しませんか?

{{#items:i}}
    {{name}} {{ i < (items.length-1) ? "," : "" }}
{{/items}}
于 2013-12-14T23:52:03.227 に答える
2

Stephen Thomas の答えが機能することを確認できます。別のオプションは、次のように配列項目を結合することです。

ractive = new Ractive({
  el: 'body',
  template: '{{ items.map( getName ).join( ", " ) }}',
  data: {
    items: [{ name: 'red' }, { name: 'green' }, { name: 'blue' }],
    getName: function ( item ) {
      return item.name;
    }
  }
});
于 2013-12-15T01:31:45.823 に答える
1

私は実際には、コンマの代わりにもっと複雑なもの、たとえば DOM 要素を配置できるソリューションが必要でした。うまくいく(別の)方法を見つけました。

{{#items:i}}
  {{name}}{{#(i<(items.length-1))}}, {{/end}}
{{/items}}
于 2013-12-17T05:02:37.253 に答える