2013-09-05 9 views
8

İki yönerge örneğim var. İki örnek arasında bir iletişim yolu var mı? Veya tüm örneklerin aynı değeri paylaşacağı bir global değişken ayarlayabilir miyim.Yönergeler arasındaki iletişim kurmanın en iyi yolu

Değeri bir hizmette depolamayı denedim. Bir örnekdeki değer değiştiğinde, diğer örnekler manuel olarak güncellenir. Ama bunun en iyi yolu olup olmadığından emin değilim.

Teşekkürler.

+0

? http://docs.angularjs.org/api/ng.$rootScope.Scope#$broadcast –

cevap

11

Yönergenin fabrikasının kendisi bir tekildir. Tanımlama nesnesi dışında bildirdiğiniz her şey tüm örneklere yönelik olacaktır. Her örneğin kendi kapsamı olduğu için, örneğe özgü veriler kapsam içine girmelidir. Yani, böyle bir şey: Nasıl `$ broadcast` hakkında

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/