Ich muss eine Link-Funktion verwenden, um einige Elemente meines DOM zu manipulieren, aber dafür muss ich einen Dienst verwenden. In der Controller-Funktion weiß ich, wie das geht, aber in der Link-Funktion habe ich keine Ahnung, wie das geht.Wie injiziere ich einen Dienst für eine Link-Funktion?
--EDIT-- Lassen Sie mich setzen mehr klar:
Ich bin mit Winkel-heitlich mit Faltblatt. Aber in Beilage sind die Ereignisse wie unten setzen auf link
Funktion werden:
link: function($scope) {
$scope.to.marker.on('dragend', function(eventArguments) {
var newPosition = eventArguments.target.getLatLng();
$scope.model.geocodes = newPosition;
});
}
Das Problem ist, dass ich einen Dienst auf diese injizieren. In der eckigen Form (http://docs.angular-formly.com/docs/formlyconfig) zeigt es mir, dass ich einen Service auf controller: function($scope)
injizieren kann, aber geben Sie mir keine Möglichkeit, dasselbe auf link
zu tun, und wenn ich die $scope.model.geocodes
in der Verbindung ändere, feuert es nicht watcher
das setze ich in den Controller meines custom-template
.
Ich erwarte, dass ich mich klar gemacht habe.
Dies ist der falsche Ansatz ist. Sie sollten zuerst alle Daten in Ihrem Controller auflösen und dann, falls erforderlich, das dom-Element mit den aufgelösten Werten bearbeiten. Ich gehe davon aus, dass Sie $ scope verwenden, damit Sie damit haken können. Ich würde empfehlen, ControllerAs Syntax zu verwenden. Bei Angular 1.5.x sollten Sie idealerweise eine Komponente verwenden und das injizierbare $ -Element verwenden und sich darauf verlassen, dass Ihre Ansicht Änderungen in dom berücksichtigt. Viele Ansätze sind jedoch gültig, nur meine persönliche Präferenz. – zilj
@musefan Ich habe es verstanden als "Wie verwende ich einen Dienst in der Link-Funktion einer Richtlinie" – zero298