Ich weiß, wie Sie Daten zwischen den Controllern mit Service teilen, aber dieser Fall ist anders, also bitte überdenken Sie die Frage.Wie alle Instanzen des gleichen Controllers zu aktualisieren
Ich habe so etwas wie dies für die Benutzeroberfläche:
<jsp:include page="../home/Header.jsp" />
<div data-ng-view></div>
<jsp:include page="../home/Footer.jsp" />
Innerhalb der ng-Ansicht, instanziiert ich eine Controller-Instanz mit "Daten-ng-Controller =" BuildController als ctrl“Es wird diese Funktion ausgeführt. das könnte bis zu 2 Stunden dauern. Nachdem es fertig ist, wird der buildCompletionMsg aktualisiert und einen Kasten Pop-up sagen, es fertig ist.
self.buildServers = function(servers, version) {
BuildService.buildList(servers, version).then(
function(data) {
self.buildCompletionMsg = data;
$('#confirmationModal').modal('show');
},
function(errResponse) {
console.error("Error getting servers." + errResponse);
}
);
};
das Problem ist, dass ich die modale will im Header.jsp seine doesn Datei, so Egal, in welcher Ansicht sich der Benutzer befindet, er würde die Benachrichtigung sehen erefore in Header.jsp habe ich eine andere Controller-Instanz mit "Daten-ng-Controller =" BuildController als ctrl“und binden Sie es
<div data-ng-controller="BuildController as ctrl">
<div class="modal fade" id="confirmationModal" role="dialog" aria-labelledby="confirmLabel">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-body">
<h3>{{ ctrl.buildCompletionMsg }}</h3>
</div>
</div>
</div>
</div>
</div>
Verwendung Wie Sie sehen können, auch wenn ich so etwas wie:
self.buildCompletionMsg = BuildService.getCompletionMsg();
Es würde nur die Ctrl-Instanz der ng-view-Seite aktualisieren, und die in Header.jsp ist immer noch null.
Wie kann ich alle Instanzen von BuildController auf verschiedenen Seiten aktualisieren oder nur die in der Datei Header.jsp aktualisieren?