У меня есть фантастическая анимация для корзины покупок, которая перемещает значок корзины с продукта в верхний угол, и он будет делать +1 на прилавке с угловымJS. Однако в то время, когда анимированная тележка достигает вершины, счетчик уже равен +1. Было бы замечательно, если бы я смог задержать счетчик angularJS, чтобы он был добавлен после завершения анимации.Как отложить счетчик до завершения анимации
HTML
<li>({{orderTotal()}}) <i id="cart" class="fa fa-shopping-cart"></i> Order </a></li>
JS
function flyToElement(flyer, flyingTo) {
if (jQuery(window).width() > 767) {
var $func = $(this);
var divider = 1;
var flyerClone = $(flyer).clone();
$(flyerClone).css({position: 'absolute', top: $(flyer).offset().top + "px", left: $(flyer).offset().left + "px", opacity: 1, 'z-index': 1000});
$('body').append($(flyerClone));
var gotoX = $(flyingTo).offset().left + ($(flyingTo).width() /2) - ($(flyer).width()/divider)/2-5;
var gotoY = $(flyingTo).offset().top + ($(flyingTo).height() /2) - ($(flyer).height()/divider)/2-5;
$(flyerClone).animate({
opacity: 1.0,
left: gotoX,
top: gotoY
}, 500,
function() {
$(flyingTo).fadeOut('fast', function() {
$(flyingTo).fadeIn('fast', function() {
$(flyerClone).fadeOut('fast', function() {
$(flyerClone).fadeIn('fast', function() {
$(flyerClone).fadeOut('fast', function() {
$(flyerClone).remove();
});
});
});
});
});
});
};
}
AngularJS
$scope.orderTotal = function(index) {
var orderTotal = 0;
angular.forEach($localStorage.items, function(items) {
orderTotal += items.quantity;
})
return orderTotal;
};
Я ищу некоторые рекомендации о том, как сделать это. Благодаря
РЕШЕНИЕ
Использование $ таймаут()
var kvv = angular.module('kvv', ['ngStorage']);
kvv.controller('CartController', function($scope, $localStorage, $sessionStorage) {
$scope.addToCart = function(index, title, desc, price, timeout) {
var found = false;
angular.forEach($localStorage.items, function(items) {
if (items.id === index) {
$timeout(function() {(items.quantity++)}, 500);
found = true;
}
});
if (!found) {
$timeout(function() {$localStorage.items
.push(angular.extend({
id: index,
title: title,
quantity: 1,
price: price}, index))},500);
}
};
});
Вы можете попробовать трансляцию «события», когда тележка добирается до места назначения и используя '$ on (event)' в вашем угловом скрипте для вашего 'orderTotal' – archana