2013-01-23 9 views
7

<base href="/test/"> निर्देशिका में रहने वाले एक कोणीय ऐप के मेरे मूल उदाहरण को देखते हुए, एप्लिकेशन को घर (या रूट) पथ पर वापस भेजने का सबसे अच्छा तरीका क्या है? मेनू स्निपेट (नीचे) काम में सभी लिंक, हालांकि, "होम" लिंक आईई को बाद के अनुरोधों पर ऐप (HomeCtrl, विशेष रूप से) को फिर से लोड करने का कारण बनता है।BASE टैग और HTML5 मोड का उपयोग करते समय मैं कोणीय में रूट पथ कैसे सेट करूं?

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> 

अद्यतन

जड़ तक प्रत्येक अनुरोध, IE9 में, जे एस फ़ाइल और फिर reruns रूट घटनाओं को दो बार ट्रिगर करता है।

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

सिर्फ किक्स के लिए, कहीं और रीडायरेक्ट करने के लिए अपना अन्य निर्देश बदलें और देखें कि क्या होता है ... –

उत्तर

0

डॉक्स से:

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

तो ब्राउज़र रीडायरेक्ट समारोह आप बुला रहे हैं का हिस्सा है।

बजाय:

{ redirectTo: '/' } 

घर मार्ग के रूप में ही उपयोग करके देखें:

{ template: basic, controller: HomeCtrl } 

मैं इस प्रयास नहीं किया है के रूप में मैं इस क्षण में करने की स्थिति में नहीं हूँ, लेकिन मुझे पता है कि यह काम करता है।