You can conditionally display two spans - one if it is 0 (your message is "unavailable"), and the other for something else.
<ul> <li ng-repeat="d in newData track by $index"> <span ng-show="d > 0">{{d}}</span> <span ng-show="d === 0">Not Available</span> </li> </ul>
Data can be passed through a function to pull all 0 after the first:
$scope.data = [1,2,3,0,1,0,0,1,0,2] $scope.pullDupes = function(array) { var newArray = []; var zero; for(var i = 0; i < array.length; i++) { if (array[i] !== 0) { newArray.push(array[i]) } if (array[i] === 0 && !zero) { zero = true; newArray.push(array[i]) } } return newArray; } $scope.newData = $scope.pullDupes($scope.data);
Plunker
tpie source share