Как я могу отображать <h4> только тогда, когда отфильтрованные результаты отображаются в определенном div или <td> - PullRequest
0 голосов
/ 07 февраля 2020

Ниже приведен мой код для отображения данных $ topi c и $ response на основе результатов поиска. Теперь я хочу отображать заголовок для каждого div и отображать заголовок, только если показ происходит в div. Можете ли вы помочь, вы можете найти мой пример кода ниже

<div ng-app="sample" ng-controller="sampleController">        
    <div class="black">      
        <input type="text" name="search" ng-model="search"
               placeholder="search" ng-click="didSelectLanguage()"/>          
    </div>
    <br>
    <br>
    <br>
  <table  style="border: 1px solid black ;">
    <tbody>
        <tr>
            <td><center><b>Question</b></center></td>
            <td ><center><b>Response</b></center></td>
        </tr>
      <tr ng-repeat="user in users | filter:searchFilter">
<h4>Heading 1</h4>
        <td style="border: 1px solid black ; width:30%;white-space: pre-wrap;">{{user.gsx$topic.$t}}</td>
        <td style="border: 1px solid black ; width:70%;white-space: pre-wrap;">{{user.gsx$response.$t}}</td>
      </tr>
    </tbody>
  </table>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script>
angular.module('sample', []).
 controller('sampleController', ['$scope', '$http', function ($scope, $http) {              
    var url = "https://spreadsheets.google.com/feeds/list/153Obe1TdWlIPyveZoNxEw53rdrghHsiWU9l-WgGwCrE/1/public/values?alt=json";
// var url2 = "https://spreadsheets.google.com/feeds/list/153Obe1TdWlIPyveZoNxEw53rdrghHsiWU9l-WgGwCrE/2/public/values?alt=json";
    $http.get(url)
    .success(function(data, status, headers, config) {     
         $scope.users = data.feed.entry;
         console.log($scope.users);
    })
    .error(function(error, status, headers, config) {
         console.log(status);
         console.log("Error occured");
    }); 
    $scope.search='';
    $scope.searchFilter=function(item){
        if(item.gsx$topic.$t.indexOf($scope.search) != -1 || item.gsx$response.$t.indexOf($scope.search) != -1){
        return true;
            }
      return false;
    }

}]);
</script>

1 Ответ

0 голосов
/ 07 февраля 2020

Возможное решение 1: -

В действительности вы можете сохранить ссылку на отфильтрованные результаты в переменной: h в Filter.marvel = (heroes | filter: {comi c) : 'Marvel'}), который вы можете использовать следующим образом: Filter.marvel.length.

"Найденные герои!" div добавляется только в том случае, если длина! = 0

            <div ng-if="heroes.length != 0"><b>Heroes Found!</b></div>
           <div ng-repeat="h in filtered.marvel = (heroes | filter:{comic:'Marvel'})">
            {{ h.name}} - {{h.comic}}
           </div>

См. Plunkr

...