2014-12-18 2 views
0

Я работаю над директивой, которая отображает таблицу с использованием директив ng-repeat. Каждая ячейка в таблице может содержать кнопку в зависимости от данных. Вот соответствующий фрагмент шаблона.Сделать одну кнопку активным в группе кнопок, созданных ng-repeat

<tbody> 
    <tr ng-repeat="row in data.rows"> 
     <td>{{ row.rowName }}</td> 
     <td ng-repeat="cell in row.cells"> 
      <button id="button-{{ row.id }}-{{ cell.id }}" 
        class="btn btn-primary" 
        ng-show="cell.isActive" 
        ng-click="onClick(row.id, cell.id, $event)">Select</button> 
     </td> 
    </tr> 
</tbody> 

В контроллере у меня

$scope.onClick = function (rowId, cellId, event) { 
    $scope.selectedRowId = rowId; 
    $scope.selectedCellId = cellId; 
    $scope.selectedButtonId = event.target.id; 
}; 

Цель состоит в том, чтобы сделать его таким образом, что, когда пользователь нажимает кнопку в таблице, эта кнопка становится активной. Когда пользователь нажимает на другую кнопку, он становится активным, делая ранее активную кнопку неактивной. Эта функция будет использоваться для управления тем, что отображается в другом разделе страницы.

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

Проблема в том, что я не могу понять, как сделать работу ng-class. Есть ли какой-то способ получить идентификатор текущей кнопки, в которой я нахожусь, или я вообще ошибаюсь в этом.

Спасибо.

ответ

0

В вашей кнопки код установки атрибута HTML нг-класс:

ng-class="active : selectedRowId = row.id & selectedCellId = cell.id" 
+0

Спасибо. Я знал, что есть более простое решение, и я просто переусердствовал. –

+0

Примечание: я получал ошибки в консоли, пока не добавил фигурные скобки ... т. Е. 'ng-class =" {active: selectedRowId = row.id & selectedCellId = cell.id} "' – sfletche

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