2013-01-23 8 views
7

Bir <base href="/test/"> dizininde yaşayan bir Angular uygulamasının temel örneğim verildiğinde, uygulamayı ana (veya kök) yoluna geri göndermenin en iyi yolu nedir? Ancak, menü pasajındaki (aşağıdaki) tüm bağlantılar, "Ana Sayfa" bağlantısı, IE'nin sonraki isteklerdeki uygulamayı (HomeCtrl, özellikle) yeniden yüklemesine neden olur.BASE etiketi ve HTML5Mode'u kullanırken kök yolunu Açısal olarak nasıl belirlerim?

app.js

var basic = '<h1>{{title}}</h1><p>{{body}}</p>'; 

var app = angular.module('website', []); 

app.config(function($routeProvider, $locationProvider) { 
    $routeProvider. 
     when('/', { template: basic, controller: HomeCtrl }). 
     when('/about', { template: basic, controller: AboutCtrl }). 
     when('/experiments', { template: basic, controller: ExperimentsCtrl }). 
     when('/:alias', { template: basic, controller: PageCtrl, resolve: { alias: resolveAlias } }). 
     otherwise({ redirectTo: '/' }); 

    $locationProvider.html5Mode('true'); 
}); 

menu.html

<base href="/test/"> 
.... 
<div id="menu"> 
    <a href="./" class="btn">Home</a> 
    <a href="./about" class="btn">About</a> 
    <a href="./experiments" class="btn">Experiments</a> 
    <a href="./unicorn" class="btn">Unicorn</a> 
</div> 

Güncelleme

köküne Her talep, IE9, daha sonra JS dosyası ve yeniden çalıştırır Rota olaylarını iki kez tetikler. Dokümanlar

LOG: MainCtrl Loaded! 
LOG: routeChangeStart[object Arguments] 
LOG: routeChangeSuccess[object Arguments] 
LOG: routeChangeStart[object Arguments] 
LOG: routeChangeSuccess[object Arguments] 
LOG: HomeCtrl Called! 
+0

sadece tekmeler için, başka bir yere yönlendirmek için başka bir yönergelerinizi değiştirin ve ne olduğunu görün ... –

cevap

0

:

redirectTo – {(string|function())=} – value to update $location path with and trigger route redirection. 

Yani tarayıcı yönlendirme Aradığınız işlevinin bir parçasıdır.

yerine:

{ redirectTo: '/' } 

ev güzergahı ile aynı kullanarak deneyin: Bu dakikada bir pozisyonda değilim ama bana izin olarak

{ template: basic, controller: HomeCtrl } 

Bunu denemedim Çalışırsa biliyorum.

İlgili konular