2016-08-18 2 views
1

Ich muss DOM basierend auf einem Ereignis manipulieren, das nicht von der Seite selbst kommt (nicht mouseover, click, etc.). Das Ereignis kommt von einem Listener im Netzwerk.eckige Direktive dom Manipulation

Was ist die beste Vorgehensweise, um meinen Zuhörer einzustellen? Im Idealfall würde ich eine Anweisung erstellen, um die Arbeit zu erledigen, aber ich sehe nicht, wie das funktionieren würde, weil das Ereignis nicht von dem Element selbst kommt.

Eine Alternative ist, den Listener in der Steuerung oder im Service zu haben, der das Element durch Identifikation erhält und die Manipulation durchführt. Ich habe es auf diese Weise implementiert, aber es fühlt sich nicht richtig an, Informationen über die Ansicht in der Steuerung oder im Service zu haben.

Eine weitere Alternative, die ich mir vorstellen kann, ist das Schreiben einer Direktive, die nicht an ein bestimmtes Feld gebunden ist, und das Einfügen dieser Direktive in den Dienst, der den Listener konfiguriert. Dies hält die Ansichtsinformationen aus dem Dienst heraus.

Irgendwelche Ideen für den besten Weg, damit umzugehen?

Antwort

0

Erstellen Sie eine Direktive, die die DOM-Manipulation behandelt, und einen Service, der die Kommunikation abwickelt. Injizieren Sie den Dienst in die Richtlinie.

Auf diese Weise abonniert die Richtlinie Ereignisse vom Dienst. Der Dienst verarbeitet die Kommunikation mit dem Server und gibt Ereignisse an alle abonnierten Anweisungen oder Controller aus.

Würde das funktionieren?

+0

Scheint wie ein vernünftiger Ansatz, ich werde es eine Chance geben. –