2016-11-17 2 views
0

Вот у меня есть код:Угловая JS нг-шоу и нг скрыть

<ul ng-controller="Modalcontrol" class="card_ul"> 
         <li ng-repeat="item in list"> 
          {{item.name }} 
          <p> 
           <span class="yellow" align="left" ng-repeat="labels in item.labels" ng-show="filter_card_id == labels.id" > 
            {{ labels.id }} 
           </span> 
           #{{ item.card_id }} 
          </p> 
         </li> 
        </ul> 

В этом нг-шоу = код «filter_card_id == labels.id» работал должным образом, но я хочу, чтобы применить это шоу и скройте этот родительский список. как?

ответ

0

Вы можете выбирать в родительском списке как это:

angular.module('ExampleApp', []) 
 
    .controller('ExampleController', function() { 
 
    this.list = [{ 
 
     id: 1, 
 
     labels: [{ 
 
     id: 11 
 
     }, { 
 
     id: 12 
 
     }] 
 
    }, { 
 
     id: 2, 
 
     labels: [{ 
 
     id: 21 
 
     }, { 
 
     id: 22 
 
     }] 
 
    }, { 
 
     id: 3, 
 
     labels: [{ 
 
     id: 31 
 
     }, { 
 
     id: 32 
 
     }] 
 
    }]; 
 
    this.filter = { 
 
     id: undefined 
 
    }; 
 
    });
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.js"></script> 
 

 
<div ng-app="ExampleApp"> 
 
    <div ng-controller="ExampleController as vm"> 
 
    <label> 
 
     Filter 
 
     <input type="number" ng-model="vm.filter.id" /> 
 
    </label> 
 
    <ul ng-repeat="item in vm.list|filter:{labels:{id:vm.filter.id?vm.filter.id:undefined}}:true"> 
 
     <li>{{item.id}} 
 
     <ul ng-repeat="label in item.labels|filter:{id:vm.filter.id?vm.filter.id:undefined}:true"> 
 
      <li>{{label.id}}</li> 
 
     </ul> 
 
     </li> 
 
    </ul> 
 
    </div> 
 
</div>

Живой пример на jsfiddle.

+0

Спасибо Stepen. Это одно работает. Но когда я дам ввод как массив. Как это? – SARAN

+0

У меня есть еще одно сомнение. Как ti отображает все данные по умолчанию. когда я нажимаю на входное значение, тогда применяется только фильтр. Как? – SARAN

+0

@SARAN Фильтр по массиву - еще одна проблема. Я обновил jsfiddle для отображения всех данных по умолчанию. –

1

Использование $parent

ng-show="filter_card_id == $parent.labels.id" 
+0

Это не работает. вы можете объяснить этот код – SARAN

+0

@SARAN, вы находитесь в цикле foreach, поэтому для доступа к свойствам родителя итерации вы используете '$ parent' – Pogrindis

+0

. Ваш родительский список должен иметь $ parent.labels – Thalaivar