2013-09-05 7 views
8

मेरे पास निर्देश के दो उदाहरण हैं। क्या दो उदाहरणों के बीच संवाद करने का कोई तरीका है? या क्या मैं एक वैश्विक चर सेट कर सकता हूं कि सभी उदाहरण समान मूल्य साझा करेंगे।निर्देश उदाहरणों के बीच संवाद करने का सबसे अच्छा तरीका

मैंने सेवा में मूल्य को स्टोर करने का प्रयास किया है। जब एक उदाहरण में मान बदल जाता है, तो अन्य उदाहरण मैन्युअल रूप से अपडेट हो जाएंगे। लेकिन मुझे यकीन नहीं है कि यह इसके लिए सबसे अच्छा तरीका है या नहीं।

धन्यवाद।

+0

कैसे के बारे में '$ broadcast'? http://docs.angularjs.org/api/ng.$rootScope.Scope#$broadcast –

उत्तर

11

निर्देश कारखाना स्वयं एक सिंगलटन है। परिभाषा वस्तु के बाहर जो कुछ भी आप घोषित करते हैं वह सभी मामलों के लिए वैश्विक होगा। चूंकि प्रत्येक इंस्टेंस में इसका अपना दायरा होता है, उदाहरण-विशिष्ट डेटा को दायरे में जाना चाहिए। तो, कुछ इस तरह:

angular.module("myApp", []) 

.directive("myDir", function() { 
    var myGlobal = 0; 

    return { 
     template: '<div>Global: {{getGlobal()}}, Local: {{local}} -- <a href="" ng-click="increment()">Increment</a></div>', 
     scope: {}, 
     link: function(scope, element, attrs) { 
      scope.local = 0; 
      scope.increment = function() { 
       scope.local++; 
       myGlobal++; 
      } 
      scope.getGlobal = function() { 
       return myGlobal; 
      } 
     } 
    } 
}); 

http://jsfiddle.net/7YwDS/

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

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