2016-08-03 19 views
-1

Ich lerne Angular, ich habe eine einfache Direktive, die eine select render. Auf der ng-change davon wählen Ich bin ein Verfahren in der Steuerung meiner Richtlinie Aufruf:Angular: Comunicate durch Controller und Direktiven

$scope.changeSelect = function(selectedValue) { 
    exampleService.setNewValue(selectedValue) 
} 

, dass der Service, die ich geschaffen habe, aktualisiert ein Beispiel Wert ich geschaffen habe.

Außerdem habe ich einen anderen Controller und eine Ansicht, die die Richtlinie macht. In dieser Ansicht.

Wie kann ich dem Controller mitteilen, dass sich die Richtlinie geändert hat, und etwas mit den Daten tun?

+1

Ernst, das wird etwa 10 mal am Tag gefragt .... tun eine Google-Suche gibt es so viele Beispiele. Ich habe bis jetzt 3 Antworten darauf geschrieben ... –

+1

Das ist vielleicht wahr, aber die Leute fragen die Dinge anders und wenn man bedenkt, dass er neu ist, kann er nicht wissen, wonach er suchen soll. –

Antwort

0

Sie möchten $scope.$watch verwenden, um auf Änderungen an der Variablen zu warten, die Sie übergeben. Schauen Sie sich https://docs.angularjs.org/api/ng/type/$rootScope.Scope um besser zu verstehen, wie Uhr arbeitet

$scope.$watch('yourValue', function (oldValue, newValue) { 
    //do something 
}); 
0

Verwendung ng-Modell bei Ihrer Auswahl-Eingang, dann ist dieser Code:

$scope.$watch('modelvalue', function(newValue, oldValue) { 
    exampleService.setNewValue(selectedValue) 
}, true); 
+0

ja, so aktualisiere ich im Service, mein Problem ist der Controller von dieser Änderung zu wissen – Pablo