2016-03-29 14 views
4

Hey Direktiflerimle ilgili bazı sorunların var. Kapsamım kapsamını kullanarak kapsamımın içeriğini güncelleyemiyorum. Benim kod örneğim var.

function linkdir1(scope){ 
 
     element.bind('click',function(){ 
 
      scope.$emit('someEvent',scope.data,scope.data2); //emit to parent directive 
 
     }); 
 
} 
 

 
function parentDir($scope){ 
 
     $scope.$on('someEvent',function(e,data,data2){ 
 
      $scope.$broadcast('broadcastEvent',data+data2); 
 
     }); 
 
    } 
 

 
function linkdir2(scope){ 
 

 
      scope.$on('broadcastEvent',function(e,data){ // i can see this data but can't update scope then. 
 
      data == 0 ? scope.show = false : scope.show = true; 
 
     }); 
 
    }
<div parent-dir> 
 
    <div dir-one></div> 
 
    <div dir-two></div> 
 
</div>

Ben kapsamı. $ Saatini kullanarak uğraş ama bu işe yaramaz. Yardım için teşekkürler.

+0

kapsamı deneyin. olay işleyicisinin sonunda. – sdfacre

+0

https://jsbin.com/tuyukavufo/edit?html,js,output - Çalıştığını görmek için OneCtrl'deki $ scope.data değişkenlerini değiştirmeyi deneyin –

+1

Lütfen yönerge kodunuzu yapıştırabilir misiniz? – maddygoround

cevap

1

Hoş Geldiniz. Sanırım bir cevap olarak koyacağım, böylece başka insanlar kolayca bulabilir. Ve eğer bunu kabul edersen, sorununu çözerse harika olur. :)

olay işleyicisi sonunda

scope.$apply(); 

ekleyin.

+0

Bir sorum var. Kapsamı kullandım. $ Iki kez uygularım, ve bir sonraki kullanım gösterdiğimiz $ digest hakkında uyarı veriyoruz, bunu $ evalAsync kullanıyoruz ve çalışıyor, ama bunun tek çözümü var mı? –

+0

neden iki kapsama ihtiyacınız var. bana kodu gösterebilir misin? – sdfacre

+0

Diğer yönergeleri güncellemek için ona ihtiyacım var. Sadece iki direktifte $ kullanıyorum ve bu $ digest problemini aldım. –