Search code examples
javascriptangularjsangularjs-directiveangularjs-ng-repeat

Angular filter for table


I have the dataset (max length - 8):

[{"number":1,
"name":"name 1"
},
{"number":3,
"name":"name 3"
},
{"number":6,
"name":"name 6"
}]

And I need a table which looks like:

  1. name 1
  2. //empty
  3. name 3
  4. //empty
  5. //empty
  6. name 6
  7. //empty
  8. //empty

How can I do this?


Solution

  • Use this: https://docs.angularjs.org/api/ng/directive/ngBindHtml

    Sample:

        var myCtrl = function ($scope) {
          
          $scope.list = [{number:1,name:"name 1"},{number:3,name:"name 3"},{number:6,name:"name 6"}];
          $scope.fakeList = [1,2,3,4,5,6,7,8];
          
          $scope.getName = function (ind) {
            
            for (var i = 0; i < $scope.list.length; i++)
            {
              if (ind == $scope.list[i].number)
                return $scope.list[i].name;
            }
            
            return "//empty";
          }
          
          
        }
    
    var myApp = angular.module('myApp',[]);
    myApp.controller('myCtrl', ['$scope', myCtrl]);
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
    
    <div ng-app="myApp">
        <ul ng-controller="myCtrl">
          <li ng-repeat="item in fakeList">
             <span ng-bind-html="getName(item)"></span>
          </li>
        </ul>
    </div>