如果值改变则为角行

时间:2016-01-06 09:35:15

标签: javascript html css angularjs

我有一个数据= {a,a,a,b,b,b,c,c,c}

<div ng-repeat="value in data" >

   <div class="col-xs-8">{{value}}</div>

</div> 

当值改变时我想打印

<div ng-repeat="value in data" >
 if(value change ) print (<div class="row" >);
   <div class="col-xs-8">{{value}}</div>
 if (value change ) print (</div>);
</div> 
你可以帮我吗

谢谢你

2 个答案:

答案 0 :(得分:3)

请查看jsfiddle solution

<div ng-repeat="value in data track by $index" >
     <div ng-if="data[$index-1] != data[$index]" class="row" >
       <div class="col-xs-8">{{value}}</div>
     </div>
     <div ng-if="data[$index-1] == data[$index]" class="col-xs-8">{{value}}</div>
</div>

您需要按$ index跟踪并检查以前的索引值是否与当前相同。

答案 1 :(得分:1)

Updated Plunkr

<div ng-repeat="value in data track by $index" >
     <div class="row" ng-if="isShowRow($index-1, $index)">
       <div class="col-xs-8">{{value}}</div>
     </div>
     <div class="col-xs-8" ng-if="!isShowRow($index-1, $index)">{{value}}
    </div>
</div>

ng-if绑定到范围方法:

$scope.isShowRow = function(prevIndex, newIndex) {
  if (prevIndex > -1 && $scope.data[prevIndex]) {
    if ($scope.data[prevIndex] !== $scope.data[newIndex]) {
      return true;
    }
  }
  else {
    return false;
  }
};

另外,我必须添加一些css来显示正在添加row元素。