2016-03-18 4 views
0

Sie haben ein Problem, wenn Ansichten aus einer anderen Ansicht zu laden (Ansicht zu sehen)Lade Ansicht Probleme zu sehen - AngularJS + ui.router (aktualisiert)

Problem: die Zielansicht wird nicht mit den richtigen Daten zu bestimmten, was angezeigt .

Hinweis: Die Verwendung ui.router

Index:

<section ng-if="page.header" ng-class="{'transparent-header': page.transparentHeader}" user-header></section> 

    <section ng-class="{'transparent-header': page.transparentHeader, 'create-event-back': page.background}" class="sec-full" ui-view></section> 

    <section ng-if="page.footer" user-footer></section> 

Router:

.state('LoginPage', { 
     url: "/login/", 
     data: { 
      name: "Login", 
      header: false, 
      footer: false, 
      css: false, 
      transparentHeader: false 
     }, 
     templateUrl: "app/partials/common/loginPage.html", 
     controller: "loginController" 
    }) 

Wenn gerade der Ansicht navigieren. Alles wird gut geladen, aber wenn ich aus einer anderen Ansicht navigiere, z. B. Heimansicht >>>> Benutzeransicht, wird die <section>, die die Navigationsleiste enthält, nicht ausgewertet (ng-if).

Ich verstehe nicht warum.

Aktualisiert Ich habe das Problem gefunden. Was passiert, ist: Wenn ich zu einer eingeschränkten Seite navigiere, wird es auf die Anmeldeseite umgeleitet. aber der $ state erhält die Daten von der eingeschränkten Seite.

das ist, was ich im Protokoll erhalten:

Loigin Seite Zustand:

Object {name: "Login", header: false, footer: false, css: false, transparentHeader: false} 

Sector Zustand Eingeschränkt:

Object {name: "Your Profile", header: true, footer: false, css: true, transparentHeader: true…} 

-Controller

Jetzt ist meine Frage, wie man das verhindert?

Antwort

0

Sie übergeben die Daten korrekt, aber Sie greifen wahrscheinlich nicht richtig darauf zu! In der Dokumentation das Beispiel besagt, dass, um auf die Daten zuzugreifen, können Sie Syntax wie verwenden ..

$state.current.data.transparentHeader 

Um dies zu tun, stellen Sie sicher, dass Sie auch die $ Zustand Objekt in Ihrem Controller injizieren.

Siehe Abschnitt "Attach Custom Data State Objekte" https://github.com/angular-ui/ui-router/wiki

+0

ich das Problem gefunden. Ich bekomme die Daten, aber die Daten ändern sich wegen der Umleitung. Ich werde meine Frage aktualisieren. Schau mal –