2013-10-09 2 views
3

Как мне получить доступ к имени ng-модели, присвоенному каждому динамическому циклу div в цикле в функции, которую я вызываю ng-click?Как получить динамическое имя ng-модели?

У меня есть четыре divs на моей странице, и одновременно я хочу отображать только один и скрывать других. Я пытаюсь сделать это, используя ng-show.

<div ng-show="content0">content0 details here...</div> 
<div ng-show="content1">content1 details here... </div> 
<div ng-show="content2">content2 details here...</div> 
<div ng-show="content3">content3 details here... </div> 

ответ

4

попробовать:

<div ng-show="current == 0">content0 details here...</div> 
<div ng-show="current == 1">content1 details here... </div> 
<div ng-show="current == 2">content2 details here...</div> 
<div ng-show="current == 3">content3 details here... </div> 

и в нг-клик набор $ scope.current в тот, который вы хотите показать.

+1

лучший угловой код когда-либо! – andygoestohollywood

0

Отключенная модель, у вас должно быть свойство Boolean, чтобы сказать, было ли оно скрыто или нет. Вы должны изменить это в своем цикле при вызове ngClick.

Пример: http://jsfiddle.net/roadprophet/ffKTy/

<div ng-app="app"> 
    <div ng-controller="MainController"> 
     <div ng-repeat="thing in things"> 
      <div ng-show="thing.shown"> 
       <h3>{{thing.id}}</h3> 
      </div> 
     </div> 
     <button ng-click="flipMode()">FLIP!</button> 
    </div> 
</div> 

angular.module('app', []). 
controller('MainController', ['$scope', function ($scope) { 
    $scope.things = [{ 
     id: 1, 
     shown: true 
    }, { 
     id: 2, 
     shown: false 
    }, { 
     id: 3, 
     shown: true 
    }, { 
     id: 4, 
     shown: false 
    }, { 
     id: 5, 
     shown: true 
    }, ]; 
    $scope.flipMode = function() { 
     $scope.things.forEach(function (thing) { 
      thing.shown = !thing.shown 
     }) 
    }; 
}]); 
Смежные вопросы