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
Dieser Ansatz für die Kommunikation von Ereignissen datiert ist. Siehe AngularJS Developer Guide - komponentenbasierte Anwendungsarchitektur.
$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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es keine Methode
on
mit Umfang. In eckigen es$on
unten sollte für Sie arbeiten
Der schließende tag
</input>
ist schlechtes HTML.InformationsquelleAutor Ajay Beniwal
Bekommen
{ nr: 10 }
sollten Sie 2 Argumente zum Hörer:event
unddata
:(halten Sie im Verstand, den wir benutzen
$on
und nichton
)Vollständiges Beispiel in plunker
InformationsquelleAutor Maxim Shoustin