@DronTat

AngularJS. Проблемы с ng-disabled в цикле ng-repead. Как выбрать определенную строку на редактирование?

При нажатии на карандаш(последний столбец) должна редактироваться ФИО(первый столбец) данной строки.
Вьюшка:
<body ng-controller="indexController">
<div class="col-sm-6">
    <table class="table table-striped">
        <thead>
        <tr>
            <th>ФИО</th>
            <th>Год рождения</th>
            <th>***</th>
        </tr>
        </thead>
        <tbody>
        <tr ng-repeat="item in items">
            <td><input type="text" ng-disabled="disabled.$index" ng-init="disabled.$index=true" value="{{item[0]}}"></td>
            <td>{{item[1]}}</td>
            <td><span class="fas fa-pencil-alt" ng-click="edit($index)"></span></td>
        </tr>
        </tbody>
    </table>
</div>

Контроллер:
testApp.controller('indexController', function ($scope, $http){
        $http({method: 'POST', url: 'http://public/rest_api/index'}).
        then(function success(response) {
            $scope.items = response.data;

        });
        $scope.edit = function (index) {
            console.log(index);
            $scope.disabled = false;
        }
    });

Пробовал так, не работает:
$scope.disabled.index = false;
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
А зачем такие сложности? Пусть у вас будет индекс редактируемого элемента, ну и всё:

ng-disabled="$index !== active"

$scope.edit = function(index) {
  $scope.active = index;
};
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 30 000 до 65 000 руб.
от 60 000 до 90 000 руб.
BSSL Москва
от 50 000 до 150 000 руб.