$ রুটস্কোপে যেতে পারে না


162

নিম্নলিখিত ফাইলটি "কাজ করে" (এটি কোনও ত্রুটি ছুঁড়ে না বলে বোঝায়):

<!doctype html>
<html ng-app="modx">
    <script src="http://code.angularjs.org/angular-1.0.0rc7.js"></script> 
    <script>
        angular.module("modx", [], function($routeProvider) {
        });
    </script>
</html>

কিন্তু এই

<!doctype html>
<html ng-app="modx">
    <script src="http://code.angularjs.org/angular-1.0.0rc7.js"></script>
    <script>
        angular.module("modx", [], function($routeProvider, $rootScope) {
        });
    </script>
</html>

ত্রুটি দেয়:

ত্রুটি: অজানা সরবরাহকারী: mod মোডেক্স
উত্স ফাইল থেকে রুটস্কোপ : http://code.angularjs.org/angular-1.0.0rc7.js
লাইন: 2491

ডব্লিউটিএফ?


114
নীচের লাইন হিসাবে ডাব্লুটিএফের জন্য +1।
এলিরান মালকা

উত্তর:


307

আপনি কনফিগারেশন পর্যায়ে উদাহরণস্বরূপ জিজ্ঞাসা করতে পারবেন না - আপনি কেবল সরবরাহকারীদের জন্যই জিজ্ঞাসা করতে পারেন।

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

// configure stuff
app.config(function($routeProvider, $locationProvider) {
  // you can inject any provider here
});

// run blocks
app.run(function($rootScope) {
  // you can inject any instance here
});

আরও তথ্যের জন্য http://docs.angularjs.org/guide/module দেখুন ।


9
ধন্যবাদ, এটি নিখুঁতভাবে উপলব্ধি করে তবে আপনি কীভাবে তা জানলেন? এটা কি ডক্সে ছিল?
মালভোলিও

143
মাভোলিও নো, তিনি তিনটি মূল বিকাশকারী is
ক্রিসঅডনি

8
ঠিক আছে, FWIW, এটি এখন "মডিউল লোডিং ও নির্ভরতা" বিভাগের অধীনে ডক্সে রয়েছে।
রাজকোককে

1
@vojta তবে যদি আমার বাইরে থেকে প্যারামিটারটি পাস করার প্রয়োজন হয় তবে কী হবে config? Asp.net অ্যাপ্লিকেশন মধ্যে রুট পাথ বলুন? আমি কেবল গ্লোবাল ভেরিয়েবল ব্যবহার করতে চাই না এবং মানটি ng-init='root:<%= myroot %>'ব্যবহার করতে এবং ব্যবহার করতে চাইতাম । rootmodule.config
ভিটোর

7
@ ভিট্টোর আমি মনে করি, এই "বাইরের" কনফিগারটিকে বৈশ্বিক উইন্ডোতে রাখা ঠিক আছে। বা এমন একটি মডিউল থাকা যা এই সমস্ত স্টাফটিকে সংজ্ঞায়িত করে এবং তারপরে আপনি এটিকে আপনার অ্যাপে লোড করুন - যেমন eg angular.module('config', []).constant('appRoot', '/local/js/app');(এই কোড (আপনি এমনকি, একটি জাতীয় ফাইল যেমন উৎপন্ন পারে বরং তারপর HTML ফাইলে ইনলাইনিং) এই মডিউল আপনার সার্ভারে দ্বারা উত্পন্ন করা হবে তারপর, আপনার অ্যাপ্লিকেশন লোড এবং সেইজন্য অ্যাক্সেস আছে। appRoot
Vojta

7

আমি নিম্নলিখিত "প্যাটার্ন "টিকে খুব দরকারী বলে খুঁজে পেয়েছি:

MainCtrl.$inject = ['$scope', '$rootScope', '$location', 'socket', ...];
function MainCtrl (scope, rootscope, location, thesocket, ...) {

যেখানে, মেইনসিটিএল একটি নিয়ামক। নিয়ামক ফাংশনটির প্যারামিটার নামগুলির উপর নির্ভর করে আমি নাম পরিবর্তন করতে পারি এবং জিনিসগুলি আপ করতে পারি এই ভয়ে উদাহরণস্বরূপ একের জন্য এক এক করে নকল করি unc আমি অনেকটা স্পষ্টভাবে এই উদ্দেশ্যে ject ইনজেকশন ব্যবহার করতে পছন্দ করি।


যে ঝরঝরে; তবে কীভাবে আপনি MainCtrlএইভাবে অ্যাক্সেস করবেন ?
f1lt3r

আমি জানি আপনার মন্তব্যটি পুরানো তবে ভবিষ্যতের স্বার্থে প্রশ্নের জবাব দেওয়া মূল্যবান। মডিউলগুলি / নিয়ন্ত্রণকারীগুলিকে এরূপ সংজ্ঞায়িত করা যায় যাতে আপনি এগুলি এগুলি অ্যাক্সেস করতে পারেন:angular.module('myMod', []).controller('theController', controllerFunction); controllerFunction.$inject = []; function controllerFunction() { }
মিটমেট

1

আমি আপনার মত সিনট্যাক্স ব্যবহার করার পরামর্শ দিচ্ছি না। AngularJs আপনি বিভিন্ন বৈশিষ্ট্য আছে হিসাবে আপনি চান করতে দেয় ( run, config, service, factory, ইত্যাদি ..), যা আরো professional.In এই ফাংশন আপনি এমনকি উদ্বুদ্ধ করতে হবে না নিজের দ্বারা মত

MainCtrl.$inject = ['$scope', '$rootScope', '$location', 'socket', ...];

আপনি এটি জানেন, যেমন আপনি জানেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.