Изменить всплывающую подсказку об элементе в ng-repeat AngularJS - PullRequest
0 голосов
/ 21 мая 2018

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

У меня есть несколько элементов с этой подсказкой, отображаемой в цикле ngRepeat.Однако я хочу изменить всплывающую подсказку только на элемент currentTarget (элемент, который был нажат).В настоящее время я отображаю всплывающую подсказку в виде интерполированной строки из контроллера, и после успешного завершения функции я изменяю эту строку. Это приводит к тому, что каждый элемент с этой всплывающей подсказкой имеет новую всплывающую подсказку, а не только ту, по которой щелкнули.

<div ng-repeat="n in auctions">
    <img src="img/heart_icon.png"
         alt="Dodaj do wishlisty"
         class="category__record-button--wishlist-icon"
         data-ng-if="$parent.authentication.isAuth"
         data-ng-click="addFollowAuction(n.id)"
         uib-tooltip="{{ categoryConfig.followInfo }}"
         tooltip-placement="top"
         tooltip-trigger="'mouseenter'"
         tooltip-append-to-body="true">
</div>

Таким образом, categoryConfig.followInfo - это строка, которую я писал выше, и она изменяется послеaddFollowAuction() функция завершена успешно:

$scope.addFollowAuction = function (auctionId) {
    console.log(auctionId);
    auctionsFollowService.addFollowAuction(auctionId)
        .then(function (response) {
            if(response.detail === 'success follow') {
                $scope.categoryConfig.followInfo = 'Pomyślnie dodano ten przedmiot do wishlisty!';
            }
        }, function (err) {
            console.log('err adding to wishlist ' + err);
        });
};

И тогда все изображения, отображаемые из цикла, имеют новую информацию всплывающей подсказки, но я хочу только прикрепить новую информацию к кликнувшему изображению.Я пытался использовать $event, но это не сработало, поскольку я в любом случае менял $scope.categoryConfig.followInfo.

Как прикрепить новую информацию всплывающей подсказки только к нажатому элементу?

1 Ответ

0 голосов
/ 21 мая 2018

вам нужно, чтобы followInfo представлял собой массив элементов, и каждый элемент имеет собственную ссылку на всплывающую подсказку:

<div ng-repeat="n in auctions">
<img src="img/heart_icon.png"
     alt="Dodaj do wishlisty"
     class="category__record-button--wishlist-icon"
     data-ng-if="$parent.authentication.isAuth"
     data-ng-click="addFollowAuction(n.id)"
     uib-tooltip="{{ categoryConfig.followInfo[n.id] }}"
     tooltip-placement="top"
     tooltip-trigger="'mouseenter'"
     tooltip-append-to-body="true">

уведомление uib-tooltip="{{ categoryConfig.followInfo[n.id] }}"

$scope.addFollowAuction = function (auctionId) {
console.log(auctionId);
auctionsFollowService.addFollowAuction(auctionId)
    .then(function (response) {
        if(response.detail === 'success follow') {
            $scope.categoryConfig.followInfo[auctionId] = 'Pomyślnie dodano ten przedmiot do wishlisty!';
        }
    }, function (err) {
        console.log('err adding to wishlist ' + err);
    });
};

уведомление $scope.categoryConfig.followInfo[auctionId] незабудьте инициализировать followiInfo до: $scope.categoryConfig.followInfo =[]

...