Отключить кнопку в первом ряду - AngularJS - PullRequest
0 голосов
/ 17 ноября 2018

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

Аналогично, как отключить ТОЛЬКО кнопку УДАЛИТЬ ПЕРВОЙ строки, если она используется СУПЕР-АДМИНИСТРОМ,Потому что первая строка содержит детали супер-админа.Он не должен удалять себя правильно.: p

Заранее спасибо.

$scope.checkRole = function () {
    if (localStorage.getItem("currentUser") !== null) {

        var currentUser = JSON.parse(localStorage.getItem("currentUser"));
        console.log("Received", currentUser);
    }
    else {
        console.log("Not received");
    }

    if (currentUser[0].role == "Supplier-User" || currentUser[0].role == "Buyer-User") { 
        return true;
    }
    else {
        return false;
    }
    //if (currentUser[0].role == "Super-Admin") {
        //What should I type here?
    //}
};
<table class="table table-striped table-hover">
    <thead>
        <tr class="table100-head">
            <th>Email</th>
            <th>First Name</th>
            <th>Last Name</th>
            <th>Contact</th>
            <th>Role</th>
            <th>Company</th>
            <th>Edit</th>
            <th>Delete</th>
        </tr>
    </thead>
    <tbody>
        <tr ng-if="showUser(user)" ng-repeat="user in users | filter: searchUsers track by $index">
            <td>{{user.email}}</td>
            <td>{{user.firstName}}</td>
            <td>{{user.lastName}}</td>
            <td>{{user.contact}}</td>
            <td>{{user.role}}</td>
            <td>{{user.company}}</td>
            <td>
                <button ng-disabled="checkRole()" type="button"
                        class="btn btn-info" data-toggle="modal"
                        data-target="#myModalEdit"
                        ng-click="selectUser(user)">
                  Edit
               </button>
            </td>
            <td>
                <button ng-disabled="checkRole()" type="button"
                        class="btn btn-danger" data-toggle="modal"
                        data-target="#myModalDelete"
                        ng-click="selectUser(user)">
                  Delete
                </button>
            </td>
        </tr>
    </tbody>
</table>

1 Ответ

0 голосов
/ 18 ноября 2018

Добавьте $index и итератор в качестве аргументов к функциям отключения:

<tr ng-show="showUser(user)" ng-repeat="user in users | filter: searchUsers"
   <td>
        <button ng-disabled="::disableEdit(user,$index)" type="button"
                class="btn btn-info" data-toggle="modal"
                data-target="#myModalEdit"
                ng-click="editUser(user)">
          Edit
       </button>
    </td>
    <td>
        <button ng-disabled="::disableDelete(user,$index)" type="button"
                class="btn btn-danger" data-toggle="modal"
                data-target="#myModalDelete"
                ng-click="deleteUser(user)">
          Delete
        </button>
    </td>
</tr>

Обратите внимание на использование оператора одноразовой привязки (::), добавленного для повышения производительности.

Для получения дополнительной информации см. Справочник по API AngularJS ng-repeat - специальные свойства .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...