2015-09-27 14 views
6

मुझे पता है कि यह एक आम समस्या है लेकिन मैं पहले पूछे जाने वाले प्रश्नों के माध्यम से पढ़कर समाधान नहीं ढूंढ पाया।AngularJS मेरे नियंत्रक को नहीं ढूंढ सकता

मुझे वास्तव में दो त्रुटियां मिल रही हैं लेकिन पहला वाला कोणीय मेरे नियंत्रक को खोजने में सक्षम नहीं है। ?

http://errors.angularjs.org/1.4.2/ $ इंजेक्टर/nomod p0 = myApp.controllers

मेरे निर्देशिका संरचना ऐसा दिखाई देता है:

. 
└── static 
    ├── index.html 
    ├── js 
    │   ├── app.js 
    │   └── controllers.js 
    ├── lib 
    │   └── angular-ui-router.min.js 
    └── partials 
     ├── view1.html 
     └── view2.html 

मेरे इंडेक्स फ़ाइल ऐसा दिखाई देता है:

<html ng-app="myApp"> 
    <head> 
     <meta charset="UTF-8"> 
     <title>Hello AngularJS</title> 
    </head> 
    <body> 
     <div ui-view></div> 
     <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.2/angular.min.js"></script> 
     <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.2/angular-route.min.js"></script> 
     <script type="text/javascript" src="lib/angular-ui-router.min.js"></script> 
     <script type="text/javascript" src="js/controllers.js"></script> 
     <script type="text/javascript" src="js/app.js"></script> 
    </body> 
</html> 

मेरे app.js फ़ाइल निम्न जैसा दिखता है:

(function(angular) { 

    var app = angular.module('myApp', ['ui.router', 'myApp.controllers']); 

    app.config(function($stateProvider) { 
     $stateProvider.state('view1', { 
      url: '/view1', 
      templateUrl: 'partials/view1.html', 
      controller: 'View1Controller' 
     }).state('view2', { 
      url: '/view2', 
      templateUrl: 'partials/view2.html', 
      controller: 'View2Controller' 
     }); 
    }).run(function($state) { 
     $state.go('view2'); 
    }); 

})(angular); 

मेरे controller.js फ़ाइल ऐसा दिखाई देता है:

(function(angular) { 
    var app = angular.module('myApp.controllers'); 

    app.controller('View1Controller', function($scope) { 
     $scope.data = 'my view 1'; 
    }); 

    app.controller('View2Controller', function($scope) { 
     $scope.data = 'my view 2'; 
    }); 

})(angular); 

इसके अलावा एक दूसरे error जो संबंधित हो सकती है।

जैसा ऊपर बताया गया है कोणीय मेरे नियंत्रक को खोजने में असमर्थ है। क्या किसी के पास कोई गलत जानकारी है कि मैं क्या कर रहा हूं? अगर मुझे और कोड पेस्ट करने की ज़रूरत है तो कृपया मुझे बताएं।

अगर किसी को इससे निपटना आसान लगता है तो मैंने जिथब पर कोड साझा किया है।

https://github.com/tonsV2/angular-ui.route/tree/master/src/main/resources/static

+0

कोशिश इसे बदल भरी हुई स्क्रिप्ट के क्रम स्थिति बदलने के लिए। फ़ाइल 'app.js' को' controllers.js' से पहले लोड किया जाना चाहिए। – Niezborala

उत्तर

7

कोणीय angular.module() में एक सेटर और एक गेटर है। (@DanAtkinson's comment के माध्यम से) angular.module डॉक्स के अनुसार:

पासिंग एक तर्क एक मौजूदा angular.Module प्राप्त करता है, जबकि एक से अधिक तर्क गुजर एक नया angular.Module पैदा करता है।

मनुष्य

var app = angular.module('myApp.controllers'); एक गेटर के रूप में मॉड्यूल का उपयोग करता है।

यह विफल रहता है क्योंकि मॉड्यूल myApp.controllers अभी तक नहीं बनाया गया है।

सेटर

एक सेटर के रूप में उपयोग करने के लिए करने के लिए

var app = angular.module('myApp.controllers', []); // note the [] 
+1

[डॉक्स] (https://docs.angularjs.org/api/ng/function/angular.module) यह प्राप्त/सेट तर्क को बहुत स्पष्ट नहीं बनाता है, लेकिन पहली पंक्ति पर, निम्न कथन है: 'एक तर्क को पास करना एक मौजूदा कोणीय को पुनर्प्राप्त करता है। मॉड्यूल, जबकि एक से अधिक तर्क गुजरते हुए एक नया कोणीय बनाता है। मॉड्यूल'। –

+1

धन्यवाद। मैंने इसे जोड़ा है। –

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