angularjs 1.6.0 (अभी नवीनतम) कार्य नहीं कर रहे हैं


98

मैं Stackoverflow पर इस सवाल को देखने की उम्मीद कर रहा था, लेकिन नहीं किया। जाहिर है मैं केवल एक ही समस्या है जो मुझे लगता है कि बहुत आम है।

मेरे पास एक बुनियादी परियोजना है जिस पर मैं काम कर रहा हूं, लेकिन मार्ग तब भी काम नहीं करते हैं जबकि मैंने अब तक जो कुछ भी किया है वह सही प्रतीत होता है।

मेरी index.htmlफ़ाइल में html का यह टुकड़ा है :

<html>
<head ng-app="myApp"> 
    <title>New project</title>
    <script src="https://code.angularjs.org/1.6.0/angular.min.js"></script>
    <script src="https://code.angularjs.org/1.6.0/angular-route.min.js"></script>

    <script src="app.js"></script>
</head>
<body>
    <a href="#/add-quote">Add Quote</a>
    <div ng-view ></div>
</body>
</html>

और यहाँ मेरा है app.js:

var app = angular.module('myApp', ['ngRoute']);


app.config(['$routeProvider', function ($routeProvider) {
    $routeProvider
        .when('/add-quote', {
            templateUrl: 'views/add_quote.html',
            controller: 'QuoteCtrl'
        })
        .otherwise({ redirectTo: '/' });
}]);

अब जब मैं सिर्फ पृष्ठ पर जाता हूं, तो यहां वह है जो मुझे यूआरएल में मिलता है:

http: // localhost: 8000 / व्यवस्थापक # /

और जब मैं Add quoteबटन पर क्लिक करता हूं, मुझे यह मिलता है:

http: // localhost: 8000 / व्यवस्थापक # / #% 2Fadd-उद्धरण

यहां क्या समस्या हो सकती है? सहायता के लिए धन्यवाद


1
संभवतः संबंधित हैं? github.com/angular/angular.js/commit/…
— दावा

जवाबों:


172

सीधे शब्दों में हैशबंग #!का उपयोग करें :

 <a href="#!/add-quote">Add Quote</a>

Aa077e8 के कारण , डिफ़ॉल्ट हैश-प्रीफ़िक्स का उपयोग $ लोकेशन हैश-बैंग URL के लिए किया जाता है, जो रिक्त स्ट्रिंग ( '') से बैंग ( '!') में बदल गया है ।

यदि आप वास्तव में कोई हैश-उपसर्ग नहीं करना चाहते हैं, तो आप अपने एप्लिकेशन में कॉन्फ़िगरेशन ब्लॉक जोड़कर पिछले व्यवहार को पुनर्स्थापित कर सकते हैं:

appModule.config(['$locationProvider', function($locationProvider) {
  $locationProvider.hashPrefix('');
}]);

अधिक जानकारी के लिए देखें


मेरे उच्च घोड़े पर आने के लिए क्षमा करें, लेकिन ... यह कैसे जारी हुआ? यह बड़े पैमाने पर, बग को तोड़ रहा है। - @ मेलोइग्रेट

# 14202 के अनुसार ब्रेकिंग परिवर्तन को वापस किया जाना चाहिए क्योंकि संदर्भ विनिर्देश आधिकारिक तौर पर # 15715 पहले ही पदावनत कर दिया गया था

मैं इस मुद्दे को बंद करने जा रहा हूं क्योंकि हमें कोई प्रतिक्रिया नहीं मिली है। यदि आप नई प्रतिक्रिया प्रदान कर सकते हैं तो इस मुद्दे को फिर से खोलें।

- https://github.com/angular/angular.js/issues/15715#issuecomment-28171785369


16
मेरे उच्च घोड़े पर आने के लिए क्षमा करें, लेकिन ... यह कैसे जारी हुआ? यह बड़े पैमाने पर, बग को तोड़ रहा है।
— मिलोउग्रेट

2
@MiloTheGreat को AngularJS टीम - github.com/angular/angular.js/issues/15715
— georgeawg

39

सीधे शब्दों में शामिल !में href:

<body>
    <a href="#!/add-quote">Add Quote</a>
    <div ng-view ></div>
</body>

7
राउटिंग पर पदावनत ट्यूटोरियल के बाद वाह घंटों बर्बाद हो गए .. मुझे याद आ रहा था '!'। धन्यवाद!
— फिलिप मेस

हैश और हैशबैंग के बारे में जंपो मंपो के साथ मैंने कभी नहीं सोचा था कि ""! एक अवैध चरित्र की तरह लगता है जो संदर्भ के बिना दिखाई देता है। और अगर मैं इसे स्वीकार करता हूं और स्वीकार करता हूं कि यह अस्तित्व में है तो समस्या हल हो जाएगी।
— मोहम्मद जोरेद

मुझे भी ... यह मुझे पागल कर रहा था!
— विक्टरएस्पिना

6

मैं 1.6.4 में काम करने के लिए रूटिंग नहीं कर सका, इसलिए मैंने कोणीय 1.5.11 का उपयोग करने का निर्णय लिया और राउटिंग ठीक काम करता है, हालांकि मुझे अपने सभी रूटिंग्स को परिभाषित करने की आवश्यकता थी जब (..) अनुगामी "/" के साथ कार्य करता है।

यदि कोणीय के पुराने संस्करण से चिपके रहना आपके लिए एक विकल्प है, तो इस पर विचार करें क्योंकि यह आपकी नसों को बचा सकता है ...

var app = angular.module("myApp", ["ngRoute"]);

app.config(function($routeProvider) {
$routeProvider
.when("/layoutandviewbox", {
    templateUrl : "views/layout-and-viewbox.html"
})
.when("/basicshapes", {
    templateUrl : "views/basic-shapes.html"
})
.when("/advancedshapes", {
    templateUrl : "views/advanced-shapes.html"
})
.when("/groups", {
    templateUrl : "views/groups.html"
})
.when("/transformations", {
    templateUrl : "views/transformations.html"
})
.when("/effects", {
    templateUrl : "views/effects.html"
})
.when("/", {
    templateUrl : "views/basic-shapes.html"
});
});

1.5 पर रहने से कोणीय 2/3/4/5 / आदि में उन्नयन कैसे प्रभावित होता है? क्या ngUpgrad 1.5 से 2+ तक काम करता है? मुझे लग रहा है कि ngUpgrad हमारे लिए व्यवहार्य नहीं हो सकता है। (हाँ, यह टिप्पणी ज्यादातर अनदेखी और हवा में गरजना होगी)
— एफिलैट

0
app.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
  $locationProvider.hashPrefix('');
  $routeProvider
    .when('/add-quote', {
      templateUrl: 'views/add_quote.html',
      controller: 'QuoteCtrl'
    })
    .otherwise({ redirectTo: '/' });
}]);

0

यह कोशिश करो एक मदद कर सकता है ...

Html या दृश्य पृष्ठ में

 <body>
       <a href="#/Home.html">Home</a>
       <div ng-view></div>
 </body>

स्क्रिप्ट पेज में

var app=angular
.module('myModule',['ngRoute'])
.config(function($routeProvider, $locationProvider) {
  $routeProvider
    .when('/Home', {
      templateUrl: 'FolderName/Home.html',
      controller: 'homeCtr'
    })
      $locationProvider.hashPrefix('');
     });
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.