2016-03-29 8 views
4

Hey, ich habe ein paar Probleme mit meinen Anweisungen. Ich kann die Inside-Direktive meines Bereichs nicht mit Hilfe von scope. $ On aktualisieren. Da ist mein Codebeispiel.

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>

Ich habe versucht den Spielraum. $ Uhr, aber das funktioniert nicht. Danke für Hilfe.

+0

versuchen Sie den Geltungsbereich. $ Apply(); am Ende des Event-Handlers. – sdfacre

+0

https://jsbin.com/tuyukavufo/edit?html,js,output - versuchen Sie, die Variablen $ scope.data in OneCtrl zu ändern, um zu sehen, ob es funktioniert. –

+1

Können Sie bitte Ihren Anweisungscode einfügen? – maddygoround

Antwort

1

Willkommen. Ich schätze, ich werde es einfach als eine Antwort bezeichnen, damit andere Leute es leicht finden. Und es wäre toll, wenn Sie es akzeptieren könnten, wenn es Ihr Problem löst. :)

hinzufügen

scope.$apply(); 

am Ende der Event-Handler.

+0

Ich habe eine Frage. Ich habe scope verwendet. $ Apply zweimal, und die nächste Verwendung zeigen wir warnen über $ Digest, ich reparierte es verwendet $ evalAsync und es funktioniert, aber es ist die einzige Lösung dafür? –

+0

Warum brauchen Sie zwei Bereiche. $ Apply? Kannst du mir den Code zeigen? – sdfacre

+0

Ich brauche es für die Aktualisierung anderer Richtlinie. Ich habe gerade $ apply in zwei Direktiven verwendet und dieses $ digest Problem bekommen. –

Verwandte Themen