点击元素后我执行了函数,并且在成功后我想查看点击元素的工具提示。
我在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
,因此无法正常工作。
如何仅将新工具提示信息附加到点击的元素?
答案 0 :(得分:5)
你需要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]
不要忘记在$scope.categoryConfig.followInfo =[]