Выражение как параметр внутри углового метода при нажатии

0

В следующем коде мне нужно получить идентификатор билета в качестве параметра метода. ng-click = "rejectTicket ({{ticket.id}})" (конечно, этот код не работает)

Я хочу отправить этот идентификатор конкретного билета в сгенерированную строку таблицы на мой внутренний контроллер Java и вызвать метод reject(). Любые идеи о том, как достичь этой функциональности "чистым" способом?

<tr ng-repeat="ticket in tickets" ng-show="ticket.state === 'NEW' || ticket.state === 'PROCESSING'">
    <td>{{ticket.created}}</td>
    <td style="text-align: center;">
        <a href="#" ng-click="rejectTicket({{ticket.id}})">
            <img class="ico" src="../lib/images/reject.png" title="Reject ticket"> &nbsp;
        </a>
        <a href="#" ng-hide="ticket.state === 'PROCESSING'">
            <img class="ico" src="../lib/images/incrase.png" title="Change to processing"> &nbsp;
        </a>
        <span ng-show="ticket.state === 'PROCESSING'">
            <img class="ico" src="../lib/images/incraseDisabled.png" title="Already processing"> &nbsp;
        </span>
        <a href="#">
            <img class="ico" src="../lib/images/approve.png" title="Satisfy ticket">
        </a>
    </td>
</tr>

EDIT 1 Код контроллера добавлен ниже.

angular.module('app').controller('TicketController', function ($scope, $http, $location) {
    $scope.tickets = [];

    /**
     * Get tickets.
     */
    $http.get('rest/tickets').then(function (response) {
        $scope.tickets = response.data;
    });

    /**
     * Create a ticket.
     */
    $scope.createTicket = function () {
        console.log('submit');
        $http({
            url: 'rest/tickets',
            method: "POST",
            data: $scope.ticket
        }).then(function (response) {
            $scope.tickets.push(response.data);
        }, function () {
            alert('Error: New ticket was not created.');
        }).finally(function () {
            $scope.ticket = {
                state: 'NEW'
            };
        })
    };

    /**
     * Reject a ticket.
     */
    $scope.rejectTicket = function (ticketId) {
        console.log('submit');
        $http({
            url: 'rest/tickets/reject',
            method: "PUT",
            data: ticketId
        }).then(function (response) {
            $scope.tickets.push(response.data);
        }, function () {
            alert('Error: Can not reject this ticket.');
        }).finally(function () {
            $scope.ticket = {};
        })
    };
});
  • 1
    Разместите свой код контроллера
Теги:
java-ee

1 ответ

0
Лучший ответ

Вам не нужна нотация {{}} в ngClick, чтобы эта строка: <a href="#" ng-click="rejectTicket({{ticket.id}})"> должна быть изменена на: <a href="#" ng-click="rejectTicket(ticket.id)">

Ещё вопросы

Сообщество Overcoder
Наверх
Меню