एक बात जो आपको पता होनी चाहिए वह है $ उपसर्ग एक कोणीय विधि को संदर्भित करता है, $ $ उपसर्ग को कोणीय विधियों को संदर्भित करता है जिसे आपको उपयोग करने से बचना चाहिए।
नीचे एक उदाहरण टेम्पलेट और इसके नियंत्रक हैं, हम यह पता लगाएंगे कि हम जो चाहते हैं, उसे प्राप्त करने के लिए $ प्रसारण / $ कैसे मदद कर सकते हैं।
<div ng-controller="FirstCtrl">
<input ng-model="name"/>
<button ng-click="register()">Register </button>
</div>
<div ng-controller="SecondCtrl">
Registered Name: <input ng-model="name"/>
</div>
नियंत्रक हैं
app.controller('FirstCtrl', function($scope){
$scope.register = function(){
}
});
app.controller('SecondCtrl', function($scope){
});
आपसे मेरा सवाल यह है कि जब कोई उपयोगकर्ता क्लिक करता है तो आप दूसरे नियंत्रक को नाम कैसे देते हैं? आप कई समाधानों के साथ आ सकते हैं, लेकिन हम जो उपयोग करने जा रहे हैं वह $ प्रसारण और $ का उपयोग कर रहा है।
$ प्रसारण बनाम $ एमिट
हमें किसका उपयोग करना चाहिए? $ ब्रॉडकास्ट सभी बच्चों के प्रमुख तत्वों को प्रसारित करेगा और $ एमिट सभी पूर्वज डोम तत्वों को विपरीत दिशा में प्रसारित करेगा।
$ एमिट या $ प्रसारण के बीच निर्णय लेने से बचने का सबसे अच्छा तरीका है $ rootScope से चैनल और अपने सभी बच्चों के लिए $ प्रसारण का उपयोग करें। जिससे हमारे मामले बहुत आसान हो जाते हैं क्योंकि हमारे प्रमुख तत्व भाई बहन हैं।
$ RootScope जोड़ना और $ प्रसारण की सुविधा देता है
app.controller('FirstCtrl', function($rootScope, $scope){
$scope.register = function(){
$rootScope.$broadcast('BOOM!', $scope.name)
}
});
ध्यान दें कि हमने $ rootScope जोड़ा है और अब हम $ प्रसारण (प्रसारण नाम, तर्क) का उपयोग कर रहे हैं। प्रसारणनाम के लिए, हम इसे एक अनोखा नाम देना चाहते हैं ताकि हम अपने सेकंडक्रेडल में उस नाम को पकड़ सकें। मैंने BOOM को चुना है! सिर्फ मनोरंजन के लिए। दूसरा तर्क 'तर्क' हमें श्रोताओं को मान देने की अनुमति देता है।
हमारा प्रसारण प्राप्त करना
हमारे दूसरे कंट्रोलर में, हमें अपने प्रसारण को सुनने के लिए कोड सेट करना होगा
app.controller('SecondCtrl', function($scope){
$scope.$on('BOOM!', function(events, args){
console.log(args);
$scope.name = args; //now we've registered!
})
});
यह वास्तव में इतना आसान है। लाइव उदाहरण
समान परिणाम प्राप्त करने के अन्य तरीके
तरीकों के इस सूट का उपयोग करने से बचने की कोशिश करें क्योंकि यह न तो कुशल है और न ही बनाए रखने के लिए आसान है, लेकिन यह उन मुद्दों को ठीक करने का एक सरल तरीका है जो आपके पास हो सकते हैं।
आप आमतौर पर एक सेवा का उपयोग करके या अपने नियंत्रकों को सरल करके एक ही काम कर सकते हैं। हम इस पर विस्तार से चर्चा नहीं करेंगे, लेकिन मुझे लगा कि मैं इसे पूर्णता के लिए उल्लेख करूंगा।
अंत में, '$ नष्ट' सुनने के लिए एक बहुत ही उपयोगी प्रसारण को ध्यान में रखें फिर आप $ का अर्थ देख सकते हैं कि यह विक्रेता कोड द्वारा बनाई गई विधि या वस्तु है। जब भी कोई नियंत्रक नष्ट हो जाता है, तब भी $ नष्ट हो जाता है, आप यह जानना चाहते हैं कि आपका नियंत्रक हटा दिया जाए।