如何将ng-repeat中的最后一项返回给控制器

时间:2017-02-03 18:37:19

标签: angularjs

我想运行一个字符串函数,删除最后一个span元素上的逗号。

<p class="genres">
    <span class="plabel">Genres</span>: 
    <span class="genre_name" ng-repeat="genres in movie.genres"
          ng-class="{'last': $last}">{{genres.name}}, 
    </span>
</p>

2 个答案:

答案 0 :(得分:5)

您可以在插值内的三元运算符上使用$last布尔值:

{{genres.name}} {{$last ? '' : ','}}

  

$ last(boolean):如果重复元素在迭代器中是最后一个,则返回true。

如果你想执行更多的字符串操作,也许你也可以使用Angular filter :(未经测试)

angular.module('testFilter', [])
.filter('addComma', function() {
  return function(input, shouldAddComma) {
    if (shouldAddComma)
       return input + ",";
    else 
       return input;
  };
});

然后在你的HTML中:

{{genres.name | addComma: $last}}

这只是一个如何使用Angular过滤器修改字符串并接收参数的示例。

答案 1 :(得分:3)

只需像这样添加ng-if

<span class="genre_name" ng-repeat="genres in movie.genres"
          ng-class="{'last': $last}">{{genres.name}}<label ng-if="!$last">,</label>
    </span>