Frage

In meiner App habe ich Zustände, die verschiedene Ressourcen vom Server abrufen resolve Klausel.

Ich habe auch ein global Controller, die Zugriff auf diese Ressourcen benötigen.Stellen Sie sich beispielsweise einen Breadcrumb vor, der einige Daten dieser Ressource anzeigen muss.

Wie kann ich vom globalen Controller aus auf diese Ressourcen zugreifen?Selbst wenn ich das Statusobjekt zur Hand habe, könnte ich nicht herausfinden, wie ich die aufgelösten Eigenschaften extrahieren kann.

BEARBEITEN:Ich benutze UI-Router Paket für das Routing.

War es hilfreich?

Lösung 2

Die Idee besteht darin, einen Auflösungsschlüssel hinzuzufügen, der von den erforderlichen Daten abhängt (siehe breadcrumb im Code unten).Wenn die Funktion dieser Taste aufgerufen wird, können wir sicher sein, dass unsere Daten item ist einsatzbereit.Dann legen wir es auf den Staat (data Eigentum).

.state('some.item.detail.state', {
  url: '/:itemId',
  resolve: {
    item: function($stateParams, MyServerResource) { 
            return MyServerResource.get({itemId: $stateParams.itemId}).$promise;
          },
    breadcrumb: function(item) {
                  this.data = item;
                }
  },
  templateUrl: 'myTemplate.html'
}

Um die Daten im globalen Controller zu nutzen, führen wir einfach eine Untersuchung durch $state.current.data.

Andere Tipps

Wie ich es verstehe, haben Sie so etwas:

generasacodicetagpre.

und Sie müssen auf die Daten in einem globalen Controller zugreifen.Ich müsste ein Codebeispiel sehen, um perfekt zu verstehen, was Sie wollen, aber ich würde mit einem gemeinsamen Dienst vorschlagen.

generasacodicetagpre.

Ein Dienst hat nur eine Instanz, daher ist es einfach zu bedienen, dass der Status und die Ressourcen über Controller teilen kann.

hoffe das hilft.

update :

Erstellen Sie einen Aufenthaltsverschluss:

generasacodicetagpre.

Sie geben also im Wesentlichen den spezifischen Resolver an, den Sie benötigen, um diese Daten abzurufen.Die "Myresolvelclude" wechselt eine Funktion um den Resolver, indem sie in $ Q an den spezifischen Resolver eingeht, um etwas abzurufen.Es wird dann die von dem spezifischen Resolver aufgelösten Daten annehmen und in den globalen Controller übergeben und sich dann auflösen, damit sich der angegebene Controller auch die Daten ermittelt.

hoffe das macht Sinn: -)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top