Search code examples
javascriptjqueryangularjsangularjs-scope

Remove element from ng-repeat but, keep its HTML in dom


I have an array badge = [{'name':'abc', 'flag': true}, {'name':'cde', 'flag': false}, {'name':'def', 'flag': true} ]

used it with ng-repeat and dom is created on browser. Now i need to delete element having flag false from array but, keep the HTML (created by ng-repeat) entact in browser.


Solution

  • Use filter

    angular.module('myApp', []);
    
    function HelloCntl($scope) {
      $scope.badge = [{
        'name': 'abc',
        'flag': true
      }, {
        'name': 'cde',
        'flag': false
      }, {
        'name': 'def',
        'flag': true
      }]
    }
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.21/angular.min.js"></script>
    <div ng:app="myApp">
      <div ng-controller="HelloCntl">
        <ul>
          <li ng-repeat="b in badge | filter:{flag:true}">
            <span>{{b.name}}</span>
            <span>{{b.flag}}</span>
          </li>
        </ul>
      </div>
    </div>