2013-01-22 13 views
5

इसलिए मेरी साइट का 100% "एंगुलरजेएस द्वारा संचालित" नहीं है, इनमें से कुछ लैंडिंग पृष्ठ या सामग्री उन्मुख सामग्री जैसे साधारण स्थिर HTML हैं, जो स्पष्ट कारणों से सरल HTML है।

एक ही रास्ता मैं सामान्य रूप से नेविगेट करने के लिए एक लिंक प्राप्त करने के लिए लग सकता है इस तरह है:

$routeProvider 
    .when('/plans', {templateUrl: '<%= asset_path('ng/views/start.html') %>'}) 
    # Catch all 
    .otherwise({ redirectTo: (p,loc) -> window.location = loc }) 

यह पकड़ सब सरल होना चाहिए कि मैं .otherwise(false) कर सकता है और यह सिर्फ सामान्य रूप से नेविगेट होगा की तरह लगता है। `.hen ('/ कुछ' /, झूठी) के लिए वही जाता है लेकिन मुझे दस्तावेज़ों में कुछ भी दिखाई नहीं देता है जो सुझाव देता है कि यह संभव है।

क्या कोई इसे करने के बेहतर तरीके से जानता है?

संपादित करें 1:

एक समाधान मैंने पाया कड़ी में target='_self' उपयोग करने के लिए है।

दूसरा स्पष्ट रूप से the docs में उल्लिखित अनुप्रयोग के "बेस यूआरएल" को सेट करने के लिए है। फिर उस आधार के बाहर के किसी भी लिंक को सामान्य रूप से नेविगेट करना चाहिए। हालांकि यह उल्लिखित के रूप में काम नहीं कर रहा है और उदाहरण से मेल नहीं खाता है कि दस्तावेज क्या सुझाव दे रहा है।

उत्तर

3

बस के लिए एक लिंक बनाने external file

आप hashbang यूआरएल (जैसे #/योजना) का उपयोग कर रहे हैं तो आप, पूरी तरह से तैयार हो अगर आप एचटीएमएल 5 इतिहास एपीआई का उपयोग कर रहे चाहिए ($ locationProvider.html5 (सही)) तो आपको अपने ऐप को नेमस्पेस करना होगा (आधार [href] सेट करें) और उस नामस्थान के बाहर सामग्री डालें।

प्रासंगिक कोड:

https://github.com/angular/angular.js/blob/4df45b20d460239a0f5001fb0dd59f95e2d0e80d/src/ng/location.js#L560

एक अन्य समाधान है कि a तत्व पर target="_self" उपयोग करने के लिए है। फिर यह केवल एक मुद्दा होना चाहिए जब HTML5 (इतिहास pushState) का उपयोग किया जा रहा है।

+0

मुझे लगता है कि आपको इसे संपादित करने में कोई समस्या हो सकती है। मैंने इन दस्तावेज़ों को http://docs.angularjs.org/guide/dev_guide.services.$location पर देखा जो आधार यूआरएल का उल्लेख करते हैं, हालांकि उदाहरण बहुत गंदा है। यदि संभव हो तो मैं टैग में विशेषता के साथ ऐसा नहीं करूंगा। –