Выделение строки, не выбранной при угловом нажатии кнопки js
Как выделить строку в таблице? если поле выбора строк не выбрано, оно должно проверить его при нажатии кнопки.
что я пробовал:
$scope.setClickedRow = function (index) {
$scope.selectedRow = index;
}
<tr id="TableBody" ng-repeat="code in CodeRegister.CodeDetails" ng-class="{selected:$index != selectedRow}">
<td ng-form="form">
<select id="reasons" name="reasons" ng-model="code.CategoryID" ng-options="" >
<option default value="">Reasons</option></select>
Нажатие кнопки:
<div style="margin-left:70em;" id="Save" class="ribbon-button ribbon-button-large " ng-click="CodeRegister.InsertCodeRegisterDetailss(myForm) && setClickedRow($index)">
</div>
Теперь при загрузке он выделяет все, я только хочу, чтобы он выделил строки при нажатии кнопки, и если поле выбора не выбрано.
2 ответа
Использование:
ng-class="{true:'selected',false:''}[selectedRow==$index]"
Надеюсь, это работает.
Во-первых, на <tr>
элемент, вы должны использовать класс вместо идентификатора, потому что вы ng-repeat
это Также, по соглашению, имена классов пишутся с использованием тире. Так что подумайте о замене:
<tr id="TableBody" ng-repeat="code in CodeRegister.CodeDetails" ...>
с
<tr class="table-body" ng-repeat="code in CodeRegister.CodeDetails" ...>
Что касается "на нагрузке, это подчеркивает все", это потому, что $scope.selectedRow
не определено, пока вы не вызвали клик. Поэтому условие $index != selectedRow
верно, поэтому вы поставили класс selected
на всех рядах. Рассмотрим это значение для ng-class
:
ng-class="{selected: selectedRow && $index !== selectedRow}">