2016-11-08 4 views
11

उदाहरण के लिए:मैं कोणीय का उपयोग कर रहा हूं, और मेरे यूआरएल में हमेशा "!" होता है (विस्मयादिबोधक चिह्न)

http://localhost/#!/login.html 

मैं की जरूरत नहीं है "!"। मैं इसे कैसे हटाऊंगा?

eg:http://localhost/#/login.html 

यह मेरा रूटर कोड है:

// Redirect any unmatched url 
$urlRouterProvider.otherwise("/login.html"); 
$stateProvider.state('login', { 
    url: "/login.html", 
    templateUrl: "views/login.html", 
    data: {pageTitle: "login", isLeft: false}, 
    controller: "LoginCtrl", 
    resolve: { 
     deps: ['$ocLazyLoad', function ($ocLazyLoad) { 
      return $ocLazyLoad.load({ 
       name: 'myApp', 
       files: [ 
        'controllers/LoginCtrl.js' 
       ] 
      }); 
     }] 
    } 
}); 

मुझे लगता है कि कोणीय-ui-रूटर में समस्या हो सकता है, लेकिन मैं समाधान नहीं मिल रहा।

धन्यवाद!

+0

आप अपने रूटिंग कोड दिखा सकते हैं? – JanR

+1

[Google के क्रॉल करने योग्य AJAX प्रस्ताव] (https://developers.google.com/webmasters/ajax-crawling/docs/learn-more) (HTML5 के रूप में अप्रचलित)। कोणीय को इसके लिए डिफ़ॉल्ट: [हैशबैंग मोड] (https://docs.angularjs.org/guide/$location#hashbang-mode-default-mode-)। एचटीएमएल 5 मोड को डिफ़ॉल्ट बनाने के लिए '$ locationProvider.html5Mode (true) '(आपको अभी भी पुराने ब्राउज़र में हैशबैंग मिल जाएगा, और यह एक अच्छी बात है)। – Amadan

+1

यह भी देखें [यह] (http://stackoverflow.com/questions/3009380/whats-the-shebang-hashbang-in-facebook-and-new-twitter-urls-for) और [यह] (http: // stackoverflow.com/questions/3009380/whats-the-shebang-hashbang-in-facebook-and-new-twitter-urls-for)। – Amadan

उत्तर

7

Hashbang मोड से बचने के लिए

Hashbang मोड एक चाल है कि AngularJS से डीप-लिंकिंग क्षमता प्रदान करने के का उपयोग करता है आपका कोणीय ऐप्स। हैशबैंग मोड (एचटीएमएल 5 मोड के लिए फॉलबैक) में, यूआरएल पथ एक प्रीपेन्ड # कैरेक्टर लेते हैं। वे टैग को फिर से लिखते नहीं हैं और किसी भी सर्वर-साइड समर्थन की आवश्यकता नहीं है। हैशबैंग मोड डिफ़ॉल्ट मोड है जो AngularJS का उपयोग करता है अगर इसे अन्यथा नहीं बताया जाता है। एक hashbang यूआरएल लगता है:

http://yoursite.com/#!/inbox/all

स्पष्ट हो सकता है और hashbang मोड कॉन्फ़िगर करने के लिए, यह एक एप्लिकेशन मॉड्यूल पर config समारोह में विन्यस्त करने की जरूरत है

हम कर सकते हैं हैशफ्रिक्स को भी कॉन्फ़िगर करें, जो हैशबैंग मोड में है! उपसर्ग। यह उपसर्ग फ़ॉलबैक तंत्र का हिस्सा है जो पुराने ब्राउज़र के लिए कोणीय उपयोग करता है। हम इस चरित्र को भी कॉन्फ़िगर कर सकते हैं।

hashPrefix कॉन्फ़िगर करें:

angular.module('myApp', ['ngRoute']) 
.config(['$locationProvider', function($locationProvider) { 
$locationProvider.html5Mode(false); 
$locationProvider.hashPrefix('!'); 
}]); 
+0

बहुत बहुत धन्यवाद। मुझे मिलगया! – AlwayS

+0

@ जिगार 7521 क्या यह बेहतर है!! या यह बेहतर नहीं है? –

+0

वास्तव में '!' एक प्रकार का निशान है जो पहचानने वाले मार्गों और नियंत्रक को पहचानने में मदद करता है, इसलिए यह बेहतर है। – Jigar7521

0
$locationProvider.hasPrefix = '!'; 

मुझे लगता है कि आप this.Remove तरह $ locationProvider कॉन्फ़िगर किया गया है इस !

+0

बहुत बहुत धन्यवाद। – AlwayS

+0

$ locationProvider.hashPrefix ('!') – ricka

0

app.config(function ($routeProvider, $locationProvider) { 
 
      $locationProvider.hashPrefix('page'); 
 
$routeProvider.when("/home", { 
 
       templateUrl: "templates/home.html", 
 
       controller: "homecontroller" 
 

 
      });

संबंधित मुद्दे