181

項目のコンマ区切りリストを作成する必要があります。

  <li ng-repeat="friend in friends">
      <b ng-repeat="email in friend.email">{{email}}{{$last ? '' : ', '}}</b>...
  </li>

AngularJS のドキュメントによると、式では制御フロー ステートメントを使用できません。{{$last ? '' : ', '}}これが、myが機能しない理由です。

コンマ区切りリストを作成する別の方法はありますか?

EDIT 1
よりも簡単なものがあります:

<span ng-show="!$last">, </span>
4

9 に答える 9

341

あなたはこのようにすることができます:

<b ng-repeat="email in friend.email">{{email}}{{$last ? '' : ', '}}</b>

..しかし、私はフィリップの答えが好きです:-)

于 2012-07-18T12:16:21.670 に答える
231

配列には Javascript の組み込みjoin(separator)関数を使用するだけです。

<li ng-repeat="friend in friends">
  <b>{{friend.email.join(', ')}}</b>...
</li>
于 2012-07-18T11:49:04.337 に答える
101

また:

angular.module('App.filters', [])
    .filter('joinBy', function () {
        return function (input,delimiter) {
            return (input || []).join(delimiter || ',');
        };
    });

そしてテンプレートで:

{{ itemsArray | joinBy:',' }}
于 2013-09-12T20:41:34.740 に答える
10

CSSを使用して修正することもできます

<div class="some-container">
[ <span ng-repeat="something in somethings">{{something}}<span class="list-comma">, </span></span> ]
</div>

.some-container span:last-child .list-comma{
    display: none;
}

しかし、アンディ・ジョスリンの答えは最高です

編集:最近これをしなければならないと気が変わったので、結合フィルターを使用することになりました。

于 2014-02-26T16:24:42.603 に答える