2016-12-25 10 views
5

मैं अपने आवेदन के माध्यम से नेविगेट करने के लिए कोणीय ui.router का उपयोग कर रहा हूँ। आमतौर पर, यूआरएल इस तरह दिखना चाहिए:# क्या करता है! ui.router में मतलब है?

http://localhost:8001/#/start 

लेकिन मेरे मामले में, यह इस तरह दिखता है:

http://localhost:8001/#!/start 

इसका क्या मतलब है?

मैं भी स्वीकार किया कि अगर मैं इस साइट है जो मेरी प्रारंभ पृष्ठ से अलग है से एक यूआरएल बोल रहा हूँ, मैं हमेशा URL के रूप में रीडायरेक्ट अमान्य प्रतीत होता है।

mainApp.config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) { 
'use strict'; 
$urlRouterProvider.otherwise('start'); 
$stateProvider 
    .state('start', { 
     url: '/start', 
     templateUrl: 'views/start.html' 
    }) 
    .state('registration-activate', { 
     url: '/registration/activate/{activationKey}', 
     templateUrl: 'views/registration-activation.html' 
    }) 
    ; 
    }]); 

जब भी मैं फोन करने की कोशिश स्थानीय होस्ट: 8001/#/पंजीकरण// xyz मैं शुरुआत पृष्ठ पर पुनः निर्देशित करने के सक्रिय करें।

+2

http://stackoverflow.com/questions/40478676/i-am-using-angular- और-my-url-always-has-a-exclamation-mark/40478862 – Taki

+0

मैंने अपनी कॉन्फ़िगरेशन की जांच की, लेकिन मैंने हैशफ्रिक्स सेट नहीं किया। क्या यह एक बात है कि मैं वेबसर्वर अनुकरण करने के लिए गल्प का उपयोग करता हूं? – Kahuna

उत्तर

0

ब्राउज़र एचटीएमएल 5 ब्राउज़र AngularJS #!

को यह रीडायरेक्ट करेगा है अन्यथा यह केवल # हो जाएगा।

क्यों ऐसा होता है के बारे में अधिक पता लगाने के लिए $location पर इस documentation here पढ़ें।

  • लीगेसी ब्राउज़र में एक सामान्य URL खोलना -> एक hashbang URL पर रीडायरेक्ट
  • एक आधुनिक ब्राउज़र में
  • उद्घाटन hashbang यूआरएल -> एक सामान्य URL
+0

ठीक है, लेकिन मैं एक यूआरएल क्यों नहीं खोल सकता? मुझे हमेशा स्टार्ट पेज पर रीडायरेक्ट किया जाता है। – Kahuna

2

ठीक है लोगों के पुनर्लेखन , आपकी व्याख्या के लिए धन्यवाद। मैं अपने समस्या यह है कि मैं बस मेरी विन्यास को यह जोड़कर किसी लिंक से URL को कॉल नहीं कर सकते समाधान किया गया:

$locationProvider.hashPrefix(''); 
संबंधित मुद्दे