fix(navClear): only set viewOptions if click leads to state change

Closes #1043
This commit is contained in:
Andy Joslin
2014-04-07 10:20:11 -06:00
parent d6c960c2a6
commit 4dffc5f6c6
2 changed files with 26 additions and 23 deletions

View File

@@ -300,19 +300,33 @@ angular.module('ionic.ui.viewState', ['ionic.service.view', 'ionic.service.gestu
*/
.directive('navClear', [
'$ionicViewService',
function($ionicViewService) {
'$state',
'$location',
'$window',
'$rootScope',
function($ionicViewService, $location, $state, $window, $rootScope) {
$rootScope.$on('$stateChangeError', function() {
$ionicViewService.nextViewOptions(null);
});
return {
priority: 100,
restrict: 'AC',
compile: function($element) {
return { pre: prelink };
function prelink($scope, $element) {
$element.on('click', function(e){
$ionicViewService.nextViewOptions({
disableAnimate: true,
disableBack: true
function prelink($scope, $element, $attrs) {
var unregisterListener;
function listenForStateChange() {
unregisterListener = $scope.$on('$stateChangeStart', function() {
$ionicViewService.nextViewOptions({
disableAnimate: true,
disableBack: true
});
unregisterListener();
});
});
$window.setTimeout(unregisterListener, 300);
}
$element.on('click', listenForStateChange);
}
}
};