2016-12-19 8 views
27

मैंने अभी देखा है कि मेरे पास मेरे सभी मार्गों में हैश (#!) के बाद विस्मयादिबोधक चिह्न है, मुझे यकीन नहीं है कि मैं उन्हें क्यों और क्यों मिला क्योंकि आज मैंने नहीं किया ' टी उन्हें था, क्या उनसे छुटकारा पाने के लिए कोई समाधान है और मैं सराहना करता हूं कि कोई मुझे बता सकता है कि यह क्या है, और मुझे यह कैसे मिला। तो मुझे अभी तक जो समाधान मिला है वह मेरे ऐप में प्रत्येक href पर मैन्युअल रूप से विस्मयादिबोधक चिह्न डालना है, लेकिन यह मुझे परेशान करता है और मुझे नहीं पता कि क्या करना है। मैं Yeoman जनरेटर के साथ अपने एप्लिकेशन उत्पन्न और मेरे app.js इसangularjs ऐप में हैश (#!) के बाद विस्मयादिबोधक चिह्न

angular 
    .module('appNameApp', [ 
    'ngAnimate', 
    'ngCookies', 
    'ngResource', 
    'ngRoute', 
    'ngSanitize', 
    'ngTouch' 
    ]) 
    .config(function ($routeProvider) { 
    $routeProvider 
     .when('/', { 
     templateUrl: 'views/main.html', 
     controller: 'MainCtrl', 
     controllerAs: 'main' 
     }) 
     .when('/about', { 
     templateUrl: 'views/about.html', 
     controller: 'AboutCtrl', 
     controllerAs: 'about' 
     }) 
     .when('/jaspo', { 
     templateUrl: 'views/about.html', 
     controller: 'jaspoCtrl', 
     controllerAs: 'vm' 
     }) 
     .otherwise({ 
     redirectTo: '/' 
     }); 
    }); 
+0

आपके पास शायद कहीं और कॉन्फ़िगर है जो हैशफ्रिक्स के साथ-साथ इसके लिए मेटा टैग भी सेट कर रहा है। क्या आप वही हैं जिनके पास बॉवर इंस्टॉलेशन के कारण पहले समान समस्याएं थीं? यदि ऐसा है तो – charlietfl

+0

हम्म पर बहुत सारी जानकारी छोड़ी गई है, जहां वह विवरण हैं? –

+1

कोणीय 1.6 में सरल हैश (# /) के बजाय [URL हैश-बैंग (#! /) उपसर्ग का संभावित डुप्लिकेट [http://stackoverflow.com/questions/41226122/url-hash-bang-prefix-instead- ऑफ-सरल-हैश-इन-कोणीय -1-6) – Mistalis

उत्तर

63

की तरह इन 2 लाइनों को संशोधित दिखता है:

.config(function ($routeProvider) { 
$routeProvider 

होने के लिए: https://stackoverflow.com/a/41223197/1564146:

.config(function ($routeProvider,$locationProvider) { 
    $locationProvider.hashPrefix(''); 
    $routeProvider 

क्रेडिट के पास जाना चाहिए

+2

Thx मैं इसे आज़माउंगा, क्या आपको पता चलेगा कि मेरे पास क्यों कारण है! बाद # ? मैं इससे परिचित नहीं हूं और मुझे पता नहीं है कि इसका मतलब क्या है –

+5

! एंकर के रूप में पहचाने जाने वाले 'यूआरएल/#' जैसे संभावित खाली हैंश से बचने के लिए यूआरएल में डाल दिया गया है और पृष्ठ को शीर्ष पर जाएं – Skrew

+1

क्षमा करें, जब मैं आपके समाधान का परीक्षण करता हूं तो मैं इसे स्वीकार कर दूंगा। –

21

आपने शायद 1.5 से 1.6 तक कोणीय संस्करण अपडेट किया है, क्योंकि 1.6 पर, कोणीय टीम डी डिफ़ॉल्ट $ स्थान हैश-उपसर्ग को '!' में बदलने के लिए निर्देशित किया गया। @Skrew की तरह सुझाव दिया गया है, आप इसे $locationProvider.hashPrefix('');

Here के साथ बदल सकते हैं, आप इसके बारे में पढ़ सकते हैं।

+0

हाँ, यह सच है, मेरा संस्करण 1.6 है। समझाने के लिए धन्यवाद। –

+0

मुझे खुशी है कि मैं आपकी मदद कर सकता हूं :-)! – Sheki

+1

मुझे बस सभी कोणीय तोड़ने वाले बदलावों से प्यार है <3 – pootzko

2

आपके फ़ंक्शन में कोई स्थान नहीं है प्रदाता और स्थान प्रदाता के लिए html5Mode निर्दिष्ट करने की आवश्यकता है। https://docs.angularjs.org/api/ng/provider/$locationProvider देखें। बजाय:

.config(function ($routeProvider) { $routeProvider .when('/', {

कोशिश:

.config(function ($locationProvider, $routeProvider) { $locationProvider.html5Mode({ enabled:true }); $routeProvider .when('/',{

डिफ़ॉल्ट रूप से आप भी अपने index.html फ़ाइल में एक आधार टैग <base href="/"> निर्दिष्ट करने के लिए की जरूरत है।

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