2013-07-01 8 views
36

ho impostato la mia routing angolare e tutto funziona bene:Raccontare angolare Js di ignorare un percorso specifico

$locationProvider.html5Mode(true); 
$routeProvider. 
     when('/', { templateUrl: '/Home/Index' }). 
     when('/User', { templateUrl: '/User/Index' }); 

Tuttavia ora ho un tag di ancoraggio per lavorare come un pulsante di logout che sarà solo reindirizzare l'utente a/User/Logout, e il logout effettuerà il log degli utenti e li reindirizzerà alla pagina di accesso. Quindi, quello che voglio è che angular js ignori semplicemente questo specifico percorso e gli permetta di fare un normale reindirizzamento http. Questo sembra qualcosa che dovrebbe essere veramente facile ma non sono stato in grado di trovare una soluzione al problema.

So che potrei fare un evento click e fare una modifica window.location nell'evento click ma sembra un modo davvero hacky per farlo.

risposta

96

specificare target="_self" nelle ancore, in modo che angularjs non riscriva gli URL. Vedi la discussione qui: http://docs.angularjs.org/guide/$location

+0

impressionante, grazie. Questo era esattamente quello che stavo cercando –

+0

Questo è necessario per me nel Dropdown di Bootstrap! – dude

+0

Questo mi ha aiutato a ottenere i collegamenti Register e Login che funzionano nel modello MVC 6, dove il resto della mia app è Angular. – Chris

0

Si potrebbe utilizzare una funzione con RedirectTo anche:

.when('/User/Logout', { 
      redirectTo: function(obj,path,search) { 
       window.location.href=path; 
      } 
     }) 
+0

Sei sicuro che questa è una risposta a questa domanda! – M98

Problemi correlati