AngularJS Richtlinie Rückruf
Ich möchte senden Sie ein Anruf zurück in eine Richtlinie über einen parameter auf den tag, und rufen Sie dann diese Methode, wenn innerhalb der entsprechenden Richtlinie. Zum Beispiel, wenn ein button geklickt wurde, rufen Sie eine Methode auf der parent-controller.
Habe ich eine einfache plunker es nicht funktioniert
html-Datei:
<body ng-controller="ParentController">
<h1> Method Arguments </h1>
<h3> open console to view output</h3>
<hello-world onLoadCallback="myCallback(arg1)"></hello-world>
</body>
javascript-Datei:
var app = angular.module("app",[]);
function ParentController($scope) {
$scope.myCallback = function(var1){
console.log("myCallback", var1);
}
}
app.directive('helloWorld', function() {
return {
restrict: 'AE',
template: '<h3>Hello World!!</h3>',
scope:{
onLoadCallback: '&'
},
link: function(scope, element, attrs, dateTimeController) {
console.log('linked directive, not calling callback')
scope.onLoadCallback('wtf');
}
};
});
InformationsquelleAutor nakkor | 2014-07-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Tricky tricky Winkel, wenn man erklärt, dass das argument in der HTML, die es braucht zu verwenden, Schlange Fall, statt camelcase zu entsprechen.
Funktioniert:
Nicht Funktioniert:
html ist keine Kenntnis von Fällen, so weiß es gar nicht, wenn es onloadcallback oder wenn es onLoadCallback. auch die browser einiger Zeit einige Gehäuse/element-Modifikation, das ist, warum eckig und auch JS, z.B. elem.dataSet, übersetzen camel-case zu
-
Einige interessante details über den Aufruf einer callback-Funktion von Direktiven tech.europace.de/passing-functions-to-angularjs-directives
InformationsquelleAutor nakkor
Auch der Rückruf muss:
Den benannten Parameter werden dann an die entsprechenden Parameter, die in der callback-Attribut (nicht alle müssen benutzt werden).
Leider ist die offizielle Dokumentation ist sehr leicht, auf diese (wie üblich eckig). Ich habe einen kurzen Satz zu erklären, die syntax.
Kann bestätigen, dass dies die Parameter-syntax ist korrekt, wenn Sie versuchen, übergeben Sie mehr als einen Parameter auf Ihren Rückruf. Wenn Sie nicht, verwenden Sie diese syntax, eckig ausfällt Karte beide Parameter an den callback.
InformationsquelleAutor user1338062