So habe ich diese Richtlinie sagen genannt, mySave
, es ist so ziemlich genau dasCallback-Funktion innerhalb Richtlinie attr in verschiedenen definierten attr
app.directive('mySave', function($http) {
return function(scope, element, attrs) {
element.bind("click", function() {
$http.post('/save', scope.data).success(returnedData) {
// callback defined on my utils service here
// user defined callback here, from my-save-callback perhaps?
}
});
}
});
das Element selbst für so aussieht
<button my-save my-save-callback="callbackFunctionInController()">save</button>
callbackFunctionInController ist jetzt nur
$scope.callbackFunctionInController = function() {
alert("callback");
}
wenn ich console.log()
attrs.mySaveCallback
innerhalb meiner-Speichern-Anweisung, gibt es nur eine Zeichenfolge callbackFunctionInController()
, ich lese somewhere, dass ich $ dies analysieren sollte und es wäre in Ordnung, so versuchte ich $parse(attrs.mySaveCallback)
, die mir eine Funktion zurück gab, aber kaum die, die ich suchte für, gab es mir zurück
function (a,b){return m(a,b)}
Was mache ich falsch? Ist dieser Ansatz von Anfang an fehlerhaft?
Die Frage ist, warum Sie einen Wert an den Controller senden möchten, können Sie einfach eine Zwei-Wege-Bindung –
erstellen, wenn Sie Werte zurück senden möchten Der Controller muss ein Objekt mit benannten Parametern senden, z. B .: {result: returnedData} – jujule
@ArunPJohny, ein Grund, keine bidirektionale Bindung zu verwenden: Manchmal möchten Sie keine zusätzlichen Bereichseigenschaften für Werte hinzufügen, die nur benötigt werden durch die Rückruffunktion. –