2017-07-20 5 views
0

Gibt es eine Möglichkeit, mit denen ich eine Funktion auf einer Seite zum Aufruf und Ausführen bei Erfolg eines Ereignisses von anderen Seite durch benutzerdefinierte Direktive auf dieser Seite verbunden gemacht werden kann ??Angular Js Aufruf Methode von einer Seite aus einer anderen

Szenario: Ich habe eine Seite mit Gitter mit verschiedenen Spalten, zusammen mit einer benutzerdefinierten Direktive, mit der ich Daten durch Öffnen von modalen Popup speziell für diese Zeile bearbeiten, jetzt möchte ich eine Methode auf der übergeordneten Seite aufrufen, die das neue validieren wird Werte, wenn nicht korrekt, wird die finale 'Submit'-Schaltfläche deaktiviert, andernfalls automatisch aktiviert.

Ich wäre dankbar für die Hilfe, ich müde Methode zu benutzerdefinierten Richtlinie übergeben, aber es hat nicht funktioniert.

+0

Code bitte –

+0

Es scheint, wie Sie eine Ausgangs Bindung über die Richtlinie wollen - definieren Sie die Funktion in der Parent-Seite, aber rufen Sie es aus der Direktive. Siehe https://docs.angularjs.org/guide/directive (Strg + F für '&') – Sophie

Antwort

0

Sie könnten einen Schuss $emit und $broadcast Dienste geben:

$ emittieren

Es setzt ein Ereignis Namen nach oben durch den Umfang Hierarchie und benachrichtigen den registrierten $ rootScope.Scope Zuhörer. Der Ereignislebenszyklus beginnt mit dem Gültigkeitsbereich, in dem $ emit aufgerufen wurde. Das Ereignis wird nach oben zum Stammbereich verschoben und ruft alle registrierten Listener auf dem Weg auf. Das Ereignis hört auf, sich zu verbreiten, wenn einer der Listener es abbricht.

$ nach unten einen Ereignisnamen Es entsendet

Broadcastübertragung an alle untergeordneten Bereiche (und ihre Kinder) und benachrichtigen Zuhörer an die registrierten $ rootScope.Scope. Der Ereignislebenszyklus beginnt mit dem Bereich, in dem $ broadcast aufgerufen wurde. Alle Listener für das Ereignis in diesem Bereich werden benachrichtigt. Danach geht das Ereignis abwärts zu den Kindbereichen und ruft alle registrierten Zuhörer auf dem Weg an. Das Ereignis kann nicht abgebrochen werden.

$ auf

Es auf Ereignisse eines bestimmten Typs hören. Es kann das Ereignis abfangen, das von $ broadcast und $ emit ausgelöst wird.


Demo Arbeitscode, visuell zeigt Umfang Baum (Eltern/Kind-Beziehung):
http://plnkr.co/edit/0kUXvoRkPPNJpQ2C2xWU?p=preview

Verwandte Themen