Übergeben von Argumenten an ngChange event Anruf von Insider-Richtlinie
Habe ich eine Richtlinie nimmt eine ng-change
Attribut:
<radio-buttons options="optionsList"
ng-model="myModel"
ng-change="myCallback($event)"></radio-buttons>
Habe ich definiert eine Funktion in meinem controller myCallback
, dass wie folgt aussieht:
$scope.myCallback = function(e) {
console.log("Callback from controller");
console.log(e);
}
Folgende Funktion wählen Sie existiert in meinem radioButton
Richtlinie. Ich brauche, um zu definieren, Wann die ngChange-callback in meinem Richtlinie in der select-Funktion:
function select(scope, val) {
if (!scope.disabled && scope.selectedValue != val) {
scope.selectedValue = val;
scope.model = val;
scope.callback.call();
}
}
Das problem ich habe, ist das argument $event
im myCallback
ist nicht immer vorwärts, wenn ich ausführen myCallback
innerhalb der select
Funktion meines Richtlinie.
Fiddle: http://jsfiddle.net/dkrotts/BtrZH/7/ Aktualisiert: http://jsfiddle.net/dkrotts/BtrZH/8/
Was mache ich falsch?
Im Gegensatz zu ngklicken Sie auf und ngMouse, ng-ändern nicht geben Sie ein Ereignis-Objekt. Was genau wollen Sie in der Richtlinie zu tun? Sie können bind () - Ereignisse (wie das ändern oder Tastendruck) in Ihrer Richtlinie-link-Funktion, um benachrichtigt zu werden, von Veränderungen/Ereignisse.
InformationsquelleAutor Dustin | 2013-02-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, um zu Steuern, Wann der handler für die ng-change wird aufgerufen, ich denke, die einfachste Möglichkeit wäre, zum entfernen der ng-sich komplett verändern - Sie können rufen Sie die controller-Funktion direkt von Ihrem ng-klicken Sie auf Rückruf.
Ich denke, dies erreicht Sie Ihre gewünschte Funktionalität:
http://jsfiddle.net/BtrZH/11/
Können Sie erfassen das event-Objekt aus der klicken Sie, wenn erforderlich:
Dann können Sie rufen Sie die controller-Funktion, wenn gewünscht:
Ich Stimme mit @FlavorScape, musste einen benutzerdefinierten handler schreiben
Ich bin damit einverstanden, aber ich denke, das ist nicht der use-case für ngChange, da es technisch heißt, nachdem die änderung vorgenommen wird, so kann man nicht wirklich behandeln den Fall nach der Tat.
InformationsquelleAutor Alex Osborn
Übergibt man die parameter in der callback-wie so:
Und Sie haben mit den Namen der parameter, mit dem man erklärt, in der HTML
In Ihrem Fall:
InformationsquelleAutor nikolai karadjov
Dem folgenden nicht gut Aussehen, aber funktionieren würde (es würde erstellen Sie eine weitere variable
$event
übergeben und überng-change
):InformationsquelleAutor John Doe
Übergeben, Werte an den controller an, rufen Sie es mit einem Objekt mit Schlüssel entsprechend den receiver Argumente definiert, das auf Ihrer Vorlage.
z.B.
element
Anrufer
parent-controller-Empfänger
REF: Übergeben von Argumenten an ngChange event Anruf von Insider-Richtlinie
InformationsquelleAutor Nate Bosscher