6

मैं कोणीय ट्यूटोरियल पर काम कर रहा हूं और मुझे शुरुआत में कोई समस्या है। लोड हो रहा है myApp मॉड्यूल त्रुटि फेंकता है। जैसा कि ट्यूटोरियल में बताया गया है, यह नियंत्रक बनाने के तीन तरीकों में से एक होना चाहिए।

यहाँ ट्यूटोरियल से प्रिंट स्क्रीन है मैं पर काम कर रहा हूँ: Creating controllers in tutorialsअसहज त्रुटि: मॉड्यूल 'myApp' उपलब्ध नहीं है! (AngularJS)

जब मैं वेब पेज को ताज़ा मैं क्रोम कंसोल में इस त्रुटि मिलती है:

Uncaught Error: [$injector:modulerr] Failed to instantiate module myApp due to: 
Error: [$injector:nomod] Module 'myApp' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument. 

यह है मेरी HTML फ़ाइल

<html ng-app="myApp"> 
     <head> 
     </head> 
     <body> 
      <h1>Hello world!</h1> 

      <div ng-controller="MainController"> 
       {{ 2+2 }} 
       <br> 
       {{ val }} 
      </div> 
      <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.js"></script> 
      <script src="app.js"> 
     </body> 
    </html> 

यह मेरी app.js फ़ाइल है

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

var MainController = function($scope){ 
    $scope.val = "Main controller variable value" 
} 

तो मेरी समस्या क्या है? मेरे द्वारा इसका निर्धारण नहीं किया जा सकता।

अग्रिम

उत्तर

9

Module 'myApp' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.

आपकी मूल समस्या अमान्य स्क्रिप्ट टैग के कारण है। असल में आपका स्क्रिप्ट टैग बंद नहीं होता है, ब्राउज़र को app.js फ़ाइल डाउनलोड करने के लिए इसे बंद करने की आवश्यकता होती है। स्क्रिप्ट टैग स्वयं बंद नहीं होते हैं इसलिए इसे एक बंद टैग की आवश्यकता है।

<script src="app.js"> 

<script src="app.js"></script> 

होना चाहिए अब ठीक करने के बाद कि आप किसी अन्य त्रुटि में मिल जाएगा।

[ng:areq] Argument 'MainController' is not a function, got undefined

आप नवीनतम कोणीय संस्करण का उपयोग कर रहे हैं, यानी कुछ भी> = 1.3.x नियंत्रक .controller निर्माण का उपयोग कर मैन्युअल रूप से पंजीकृत होना आवश्यक है। See here for more details

नोट - यह थोड़ा उलझन में है क्योंकि स्क्रीनशॉट आपको 1.2.0 का उपयोग करने से दिखाता है (जो आवश्यक रूप से स्पष्ट नियंत्रक पंजीकरण की आवश्यकता नहीं है) लेकिन 1.4.x दिखाए गए प्रश्न में स्निपेट दिखाता है।

+2

अच्छी आंखें .. +1 सर –

+0

आप सही हैं! वास्तव में अच्छी आंखें .. धन्यवाद! –

+2

:) धन्यवाद दोस्तों .. – PSL

4

में धन्यवाद आप कोणीय मॉड्यूल myApp करने के लिए एक controller रजिस्टर चाहिए।

App.js

var myApp = angular.module('myApp', []); 
myApp.controller('MainController', MainController); 
var MainController = function($scope){ 
    $scope.val = "Main controller variable value" 
} 

असल में क्या कर रहे थे सही है लेकिन यह है कि कोड AngularJS के पुराने संस्करण, जिस तरह से आप घोषित अपने नियंत्रक कुछ भी नहीं है के बाद किया गया है, लेकिन नियंत्रक समारोह के रूप में के रूप में जाना , जिसे $controllerProvider की विधि सक्षम करने की आवश्यकता है। चूंकि कोणीय 1.3 + allowGlobals() विधि नीचे कोड जोड़कर अक्षम कर दिया गया है, इसलिए आप अपना कोड काम करने के लिए इसे चालू कर सकते हैं, लेकिन ऐसा करने की अनुशंसा नहीं की जाती है।

कॉन्फ़िग

myApp.config(['$controllerProvider', 
    function($controllerProvider) { 
    $controllerProvider.allowGlobals(); 
    } 
]); 

देखें एक ही SO Answer यहाँ

2

इस प्रयास करें:

myApp.controller ("MainController",[$scope, function ($scope){ 
     $scope.val = "Main controller variable value" 
}]); 

ng-controller निर्देश अपने MyApp मॉड्यूल में MainController के लिए लग रहा है।

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