Angularjs 是否拆分为ng重复项?

Angularjs 是否拆分为ng重复项?,angularjs,angularjs-ng-repeat,Angularjs,Angularjs Ng Repeat,简单问题-如果我的控制器中有: $scope.somedata = 'Item 1, Item 2'; // set from something else 是否有方法在ngRepeat表达式中拆分视图的某些数据?比如: <div ng-repeat="item in somedata | split(',')">{{item}}</div> 然后 <div ng-repeat="item in items>{{item}}</div> 将|

简单问题-如果我的控制器中有:

$scope.somedata = 'Item 1, Item 2'; // set from something else
是否有方法在ngRepeat表达式中拆分视图的某些数据?比如:

<div ng-repeat="item in somedata | split(',')">{{item}}</div>
然后

<div ng-repeat="item in items>{{item}}</div>

|
右侧的字符串解析为筛选器的名称(通常是字符串格式筛选器,但angular团队也提供了
筛选器
筛选器,该筛选器返回一个已筛选数组(由于两者共享相同的名称,因此有点误导)。您可以创建自己的拆分筛选器来完成所需的操作:

angular.module('myFilters', []).
  filter('split', function() {
    return function(input, delimiter) {
      var delimiter = delimiter || ',';

      return input.split(delimiter);
    } 
  });
您可以这样使用过滤器:

<div ng-repeat="item in somedata | split">

或指定分隔符:

<div ng-repeat="item in somedata | split:,">

考虑上面的伪代码,因为我还没有测试它

勒普朗克:

我想我太迟了, 但为什么不干脆这样做:

<div ng-repeat="item in somedata.split(',')">{{item}}</div>
{{item}
很好用


证据!

在此处注释分隔符

angular.module('myFilters', []).
  filter('split', function() {
    return function(input, delimiter) {
      //var delimiter = delimiter || ',';

      return input.split(delimiter);
    } 
  });
您可以这样使用过滤器: 还添加了track by$index以避免由于重复值而崩溃

<div ng-repeat="item in somedata | split:',' track by $index">


这个答案更容易解决问题;我认为定义一个过滤器会更容易,但最终这是一个更好的解决方案。不知道这是否是一种“角度”的方式,但我喜欢。最简单的解决方案!这应该是正确的答案
<div ng-repeat="item in somedata | split:',' track by $index">