mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-11-08 07:41:51 +08:00
Better nav click throttling
This commit is contained in:
20
js/ext/angular/src/directive/ionicNav.js
vendored
20
js/ext/angular/src/directive/ionicNav.js
vendored
@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user