Better nav click throttling

This commit is contained in:
Max Lynch
2013-11-12 00:12:25 -06:00
parent 0f4482a2f0
commit 1627c242c4
2 changed files with 22 additions and 6 deletions

View File

@ -12,7 +12,7 @@ angular.module('ionic.ui.nav', ['ionic.service.templateLoad', 'ionic.service.ges
* Push a template onto the navigation stack.
* @param {string} templateUrl the URL of the template to load.
*/
this.pushFromTemplate = ionic.debounce(function(templateUrl) {
this.pushFromTemplate = ionic.throttle(function(templateUrl) {
var childScope = $scope.$new();
childScope.isVisible = true;
@ -25,12 +25,16 @@ angular.module('ionic.ui.nav', ['ionic.service.templateLoad', 'ionic.service.ges
$animate.enter(cloned, angular.element(content));
});
});
}, 300, true);
}, 300, {
trailing: false
});
// Pop function, debounced
this.popController = ionic.debounce(function() {
// Pop function, throttled
this.popController = ionic.throttle(function() {
_this.pop();
}, 300, true);
}, 300, {
trailing: false
});
ionic.controllers.NavController.call(this, {
@ -191,6 +195,12 @@ angular.module('ionic.ui.nav', ['ionic.service.templateLoad', 'ionic.service.ges
$scope.visibilityChanged = function(direction) {
lastDirection = direction;
if($scope.isVisible) {
$scope.$broadcast('navContent.shown');
} else {
$scope.$broadcast('navContent.hidden');
}
if(!childElement) {
return;
}

View File

@ -74,7 +74,13 @@
})
.controller('CatsCtrl', function($scope, $compile, $element) {
console.log('Cats', $element);
$scope.$on('navContent.shown', function() {
console.log('SHOWN');
});
$scope.$on('navContent.hidden', function() {
console.log('HIDDEN');
});
var items = [];
for(var i = 0; i < 100; i++) {
items.push({});