खोज…


टिप्पणियों

कोणीय के साथ काम करते समय एक बहुत ही सामान्य सवाल यह है कि नियंत्रकों के बीच डेटा कैसे साझा किया जाए। किसी सेवा का उपयोग करना सबसे लगातार प्रतिक्रिया है और यह दो या अधिक नियंत्रकों के बीच किसी भी प्रकार की डेटा ऑब्जेक्ट को साझा करने के लिए फ़ैक्टरी पैटर्न का प्रदर्शन करने वाला एक सरल उदाहरण है। क्योंकि यह एक साझा ऑब्जेक्ट संदर्भ है, सेवा का उपयोग करके अन्य सभी नियंत्रकों में एक नियंत्रक में एक अद्यतन तुरंत उपलब्ध होगा। ध्यान दें कि सेवा और कारखाने और दोनों प्रदाता

डेटा साझा करने के लिए ngStorage का उपयोग करना

सबसे पहले, अपने index.html में ngStorage स्रोत शामिल करें।

एक उदाहरण ngStorage src इंजेक्शन होगा:

<head>
    <title>Angular JS ngStorage</title>
    <script src = "//ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
    <script src="https://rawgithub.com/gsklee/ngStorage/master/ngStorage.js"></script>
</head>

ngStorage आपको 2 स्टोरेज देता है: $localStorage और $sessionStorage । आपको ngStorage की आवश्यकता है और सेवाओं को इंजेक्ट करें।

मान लीजिये यदि ng-app="myApp" , तो आप निम्नलिखित के रूप में ngStorage को इंजेक्ट करेंगे:

var app = angular.module('myApp', ['ngStorage']);
        app.controller('controllerOne', function($localStorage,$sessionStorage) {
        // an object to share
        var sampleObject = {
            name: 'angularjs',
            value: 1
        };
       $localStorage.valueToShare = sampleObject;
       $sessionStorage.valueToShare = sampleObject;
    })  
.controller('controllerTwo', function($localStorage,$sessionStorage) {
    console.log('localStorage: '+ $localStorage +'sessionStorage: '+$sessionStorage);
})

जब तक आप नियंत्रकों में उन सेवाओं को इंजेक्ट करते हैं, तब तक $localStorage और $sessionStorage किसी भी नियंत्रकों के माध्यम से विश्व स्तर पर सुलभ है।

आप HTML5 के localStorage और sessionStorage का भी उपयोग कर सकते हैं। हालाँकि, HTML5 localStorage का उपयोग करने के लिए आपको उन्हें उपयोग करने या सहेजने से पहले अपनी वस्तुओं को क्रमबद्ध करना और उनका उपयोग करना होगा।

उदाहरण के लिए:

var myObj = {
    firstname: "Nic",
    lastname: "Raboy",
    website: "https://www.google.com"
} 
//if you wanted to save into localStorage, serialize it  
window.localStorage.set("saved", JSON.stringify(myObj));  

//unserialize to get object  
var myObj = JSON.parse(window.localStorage.get("saved"));

सेवा का उपयोग करके एक नियंत्रक से दूसरे में डेटा साझा करना

हम controllers बीच डेटा set और get करने के लिए एक service बना सकते हैं और फिर उस सेवा को नियंत्रक फ़ंक्शन में इंजेक्ट कर सकते हैं जहां हम इसका उपयोग करना चाहते हैं।

सेवा :

app.service('setGetData', function() {
  var data = '';
    getData: function() { return data; },
    setData: function(requestData) { data = requestData; }
});

नियंत्रक:

app.controller('myCtrl1', ['setGetData',function(setGetData) {

  // To set the data from the one controller
  var data = 'Hello World !!';  
  setGetData.setData(data);

}]);

app.controller('myCtrl2', ['setGetData',function(setGetData) {

  // To get the data from the another controller  
  var res = setGetData.getData();
  console.log(res); // Hello World !!

}]);

यहां, हम देख सकते हैं कि myCtrl1 का उपयोग डेटा setting के लिए किया जाता है और डेटा getting करने के लिए myCtrl2 का उपयोग किया जाता है। तो, हम डेटा को एक कंट्रोलर से दूसरे कंट्रेलर जैसे साझा कर सकते हैं।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow