angularjs: broadcast aus der Richtlinie controller

Ich versuche eine Nachricht zu senden, die innerhalb einer Richtlinie zur übergeordneten Steuerung (ohne Erfolg)

Hier ist mein HTML

<div ng-controller="Ctrl">
   <my-elem/>
</div>

Hier ist der code in den controller, der Listener für das event

$scope.on('go', function(){ .... }) ;

Und schließlich die Richtlinie sieht

angular.module('App').directive('myElem',
   function () {
    return {
        restrict: 'E',
        templateUrl: '/views/my-elem.html',
        link: function ($scope, $element, $attrs) {
            $element.on('click', function() {
                  console.log("We're in") ; 
                  $scope.$emit('go', { nr: 10 }) ;
            }
        }
    }
  }) ;

Ich habe versucht, verschiedene scope-Konfiguration und $broadcast anstelle von $emittieren. Ich sehe, dass das event gefeuert wird, aber der controller nicht erhalten ein " go " - event. Irgendwelche Vorschläge ?

Haben Sie $scope.$on('go', function(){ .... }); oder ist das ein Tippfehler?
Dieser Ansatz für die Kommunikation von Ereignissen datiert ist. Siehe AngularJS Developer Guide - komponentenbasierte Anwendungsarchitektur.

InformationsquelleAutor Jeanluca Scaljeri | 2013-09-25

Schreibe einen Kommentar