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!
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 ... –