diff --git a/js/ext/angular/src/directive/ionicNav.js b/js/ext/angular/src/directive/ionicNav.js index 380ada41be..c588d4f77c 100644 --- a/js/ext/angular/src/directive/ionicNav.js +++ b/js/ext/angular/src/directive/ionicNav.js @@ -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; } diff --git a/js/ext/angular/test/nav.html b/js/ext/angular/test/nav.html index 4fe1fef4f3..2be7571a69 100644 --- a/js/ext/angular/test/nav.html +++ b/js/ext/angular/test/nav.html @@ -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({});