2015-04-17 4 views
0

В то время как в ng-repeat, я пытаюсь скрыть элемент sibling, когда я нажимаю элемент. Внутри моего controllerClickMethod Я проверяю, равен ли item.attribute значение атрибута в data-group. Как я смогу это сделать?Скрытие элемента сиблинга при нажатии элемента

<div ng-repeat="item in itemArray"> 
    <div ng-click="controllerClickMethod(item)"> 
     <h4> 
      Label 
     </h4> 
    </div> 
    <div data-group="{item.attribute}"></div> 
</div> 
+0

Это звучит как очень JQuery-эск подхода. Угловым способом было бы использовать переменную в вашем контроллере (или в директиве) вместе с 'ng-hide', расположенную на элементе, который вы хотите скрыть. – tyler

+0

Некоторым HTML будет полезно понять, что вы пытаетесь сделать. –

ответ

0

Нечто подобное будет работать. Добавьте ng-click и ng-hide директивы к вашим элементам. В вашем ng-click введите функцию, которая добавит свойство hide следующей сестре.

angular.module('HidingPeeps', []) 
 
.controller('Peeps', function() { 
 
    this.peeps = [ 
 
    {name: 'Joe'}, 
 
    {name: 'Bob'}, 
 
    {name: 'Sarrah'}, 
 
    {name: 'Tom'}, 
 
    {name: 'You'} 
 
    ]; 
 
    this.hide = function ($index) { 
 
    if(!this.peeps[$index]) { 
 
     $index = 0; 
 
    } 
 
    this.peeps[$index].hide = true; 
 
    } 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app="HidingPeeps"> 
 
    <div ng-controller="Peeps as C"> 
 
     <div ng-repeat="peep in C.peeps" ng-click="C.hide($index+1)" ng-hide="peep.hide"> 
 
     {{peep.name}} 
 
     </div> 
 
    </div> 
 
</div>

Смежные вопросы