2013-04-25 11 views
5

Ich habe in meinem Controller folgendes versuchte dabei:AngularJS: Route zu verhindern ändert

$scope.$on("$routeChangeStart", function (event, next, current) { 
     if (!confirm('are you sure ?')) { 
     event.preventDefault();   
     } 
    }); 

Aber es funktioniert nicht. Soll das nicht der richtige Weg sein?

+0

Wo machst du das? Können Sie einen Beitrag veröffentlichen? Wahrscheinlich möchten Sie dies auf dem $ rootScope tun. Ich schlage vor, es in den App-Bootstrap einzubauen. Poste ein jsFiddle und ich werde versuchen, es für dich zu reparieren. –

+0

nett von dir, aber ich endete mit Ui-Router, so dass ich stattdessen $ stateChangeStart verwenden musste, was einfach funktioniert. – Sam

Antwort

0

ich landete mit ui-router, so wie ich es tue:

$scope.$on('$stateChangeStart', function (event) { 
    if (!confirm('are you sure ?')) { 
     event.preventDefault(); 
    } 
}); 

und es funktioniert.

0

Ich würde eine Richtlinie auf Ihre Links setzen, die vor dem Ändern der Route bestätigt werden sollte. Ich habe es nur in JSFiddle prototypisiert, ich habe es nicht getestet. Aber ich denke, das sollte der richtige Weg sein.

(function (angular) { 
    module = angular.module('confirm', []); 
    ConfirmDirective = function() { 
     return { 
     restrict: 'A', 
     link: function (scope, elm, attrs, ctrls) { 
      angular.element(elm).bind('click', function (event) { 
       alert("Sure?"); 
       event.preventDefault(); 
       return false; //or true, depends on you 
      }); 
     } 
    }; 
    }; 
    module.directive("confirm", ConfirmDirective); 
}(angular)); 

http://jsfiddle.net/L6xBF/3/

prüfen und versuchen Sie es.

Grüße

+1

Das ist schön, aber es ist nicht das, wonach ich suche. Ich muss auf einen Routenwechsel achten. Das schließt ein, wenn der Benutzer den Zurück-Knopf des Browsers drückt. – Sam

+0

Sie können auch alle Routenänderungen erfassen, und das Hinzufügen einer Bestätigung zu jedem einzelnen Link sieht einfach nicht nach dem besten Weg aus. – andersonvom

Verwandte Themen