উভয়ের ব্যবহার আছে। প্রথম, কিছু ইতিহাস ...
$ স্কোপটি হ'ল "ক্লাসিক" কৌশল এবং "নিয়ামক হিসাবে" অনেক বেশি সাম্প্রতিক (সংস্করণ 1.2.0.0 হিসাবে আনুষ্ঠানিকভাবে এটি এর আগে অস্থির প্রাক রিলিজগুলিতে প্রদর্শিত হয়েছিল)।
উভয়ই পুরোপুরি ভালভাবে কাজ করে এবং একমাত্র ভুল উত্তর হ'ল সুস্পষ্ট কারণ ছাড়াই তাদের একই অ্যাপ্লিকেশনটিতে মিশ্রিত করা। স্পষ্টতই, তাদের মিশ্রণটি কাজ করবে, তবে এটি কেবল বিভ্রান্তিকে বাড়িয়ে তুলবে। সুতরাং একটি বাছাই এবং এটি দিয়ে রোল। সর্বাধিক গুরুত্বপূর্ণ বিষয়টি ধারাবাহিক হওয়া।
কোনটি? এটি আপনার উপর নির্ভর করে। $ সুযোগের বাইরে আরও অনেক উদাহরণ রয়েছে, তবে "নিয়ামক হিসাবে" বাষ্পও বাছাই করছে। এক অন্য চেয়ে ভাল? এটি বিতর্কযোগ্য। আপনি কিভাবে নির্বাচন করবেন?
সান্ত্বনা
আমি "হিসাবে নিয়ামক" পছন্দ করি কারণ আমি $ স্কোপটি লুকিয়ে রাখতে এবং মধ্যস্থতাকারী কোনও অবজেক্টের মাধ্যমে সদস্যদের নিয়ামক থেকে দৃশ্যে প্রকাশ করা পছন্দ করি। এটি সেট করে * *, আমি কন্ট্রোলার থেকে দর্শন পর্যন্ত যা প্রকাশ করতে চাই ঠিক তা প্রকাশ করতে পারি। আপনি এটি $ সুযোগের সাথেও করতে পারেন, আমি কেবল এটির জন্য মানক জাভাস্ক্রিপ্ট ব্যবহার করতে পছন্দ করি। আসলে আমি এটিকে কোড করি:
var vm = this;
vm.title = 'some title';
vm.saveData = function(){ ... } ;
return vm;
এটি আমার কাছে আরও পরিশ্রুত বোধ করে এবং দৃশ্যের সামনে কী প্রকাশিত হচ্ছে তা সহজেই দেখায়। লক্ষ্য করুন যে আমি যে ভেরিয়েবলটি ফিরিয়েছি তার নাম রাখি "ভিএম", যা ভিউমডেলের জন্য দাঁড়িয়েছে। এটাই আমার কনভেনশন।
$ সুযোগ দিয়ে আমি একই জিনিসগুলি করতে পারি, তাই আমি কৌশলটি যুক্ত বা বিরক্ত করছি না।
$scope.title = 'some title';
$scope.saveData = function() { ... };
সুতরাং এটি আপনার উপর নির্ভর করে।
ইনজেকশন
$ স্কোপ সহ আমার কন্ট্রোলারে ইনজেকশন $ স্কোপ দরকার। আমাকে অন্য কোনও কারণে (যেমন $ সম্প্রচার বা ঘড়ির জন্য, যদিও আমি নিয়ামকের মধ্যে থাকা ঘড়িগুলি এড়ানোর চেষ্টা করি না) প্রয়োজন না হলে কন্ট্রোলারের সাথে এটি করার দরকার নেই।
আপডেটটি
আমি এই 2 টি পছন্দ সম্পর্কে এই পোস্টটি লিখেছি:
http://www.johnpapa.net/do-you-like-your-angular-controllers-with-or-without-sugar/