сегодня я столкнулся с проблемой при нажатии кнопки с использованием директивы ng-click в angular, на рабочем столе, очевидно, не было задержки по времени, но при запуске приложения Phonegap на iPad возникает проблема, позвольте мне показать вам код, который вызывал это медленное поведение, у меня есть два примера с одинаковым симптомом:
Пример 1
$scope.addProductFn = function(index){
var product = $scope.products[index];
$scope.order.unshift(product);
/* the code below make the click slow */
$scope.orderTotal = 0;
angular.forEach($scope.order, function(value, key) {
$scope.orderTotal += value.price;
});
};
Пример 2
$scope.addProductFn = function(index){
var product = $scope.products[index];
$scope.order.unshift(product);
/* the code below make the click slow */
$scope.orderTotal += product.price;
};
Если я удалю эти строки, реакция на клик будет работать, как и ожидалось, довольно быстро.
$scope.addProductFn = function(index){
var product = $scope.products[index];
$scope.order.unshift(product);
};
И вот как я показываю итог
<span class="header">Orden: {{ orderTotal | currency }}</span>
Как видите, сложного кода нет, но при попытке вычислить область видимости var "$scope.orderTotal" клики по кнопкам медленные, активное состояние удлиняется.
Есть идеи по этому поводу?
По крайней мере, я знаю, что вызывает замедление, но мне интересно, почему!
Спасибо за вашу помощь
$scope.orderTotal
. Особенно в примере 1, где у вас есть петля. Я делал подобные вещи, разрабатывая с Angular и PhoneGap, но не используя OnsenUI. Моя отзывчивость была в порядке. Поскольку OnsenUI основан на директивах Angular, возможно, во время цикла $digest срабатывает гораздо больше, чем ваше обновление. - person TrazeK   schedule 08.08.2014