2016-08-05 29 views
1

hoffentlich ist das verständlich :) In meiner App benutze ich die Seite-Router-Steckdose zusammen mit Typescript und angular-js. Derzeit reagiert die App nicht mehr, da das Routing abgeschlossen ist, nachdem die Zielseite vollständig aufgebaut wurde. Die Änderung, die ich in meiner App vornehmen möchte, besteht darin, die Navigation zu starten, während die Seite erstellt wird, und anschließend den Inhalt zu initialisieren. Gibt es eine Best Practice, wie man das macht?Page router und livecycle

Ich habe versucht verschiedene LiveCylcooks von ngInint zu ngAfterViewChecked und mehrere dazwischen, der Pagerouter scheint sie zu ignorieren und nur Router, nachdem alles erledigt ist.

Hat jemand eine Idee, wie man die Seite faul aufbauen kann?

Grüße

Torsten

Antwort

0

Ich bin nicht 100% sicher, dass ich die Frage verstehen, aber es scheint, dass Sie über den Winkel Router mit Nativescript fragen. In diesem Fall haben Sie zwei Möglichkeiten, die <page-router-outlet>, die Sie derzeit verwenden, dies lädt alles Seite für Seite und erzeugt das langsamste Ergebnis, während Sie Ihre Seiten so strukturieren könnten, dass Sie die <router-outlet> verwenden, mit der Sie durch Unterkomponenten navigieren können.

So könnten Sie zum Beispiel eine Symbolleisten- und eine Fußzeilenkomponente haben, die Sie nicht ändern müssen. Sie sollten also nur die Verwendung von Routen zum Ändern des Textkörpers in Erwägung ziehen. Dies bedeutet, dass möglicherweise weit weniger Informationen geladen werden. Ich denke, das ist der Sinn des ng2-Komponentensystems.

ist hier ein allgemeines Beispiel fo die Komponente Router in Aktion:

import {Component} from '@angular/core'; 
import {nativeScriptBootstrap} from 'nativescript-angular/application'; 
import {ROUTER_DIRECTIVES, Router} from '@angular/router'; 
import {NS_ROUTER_DIRECTIVES} from 'nativescript-angular/router'; 

import {APP_ROUTER_PROVIDERS} from "./app.routes"; 

@Component({ 
    selector: 'navigation-test', 
    directives: [ROUTER_DIRECTIVES, NS_ROUTER_DIRECTIVES], 
    template: ` 
     <StackLayout> 
      <StackLayout class="nav"> 
       <Button text="First" 
        [nsRouterLink]="['/first']"></Button> 
       <Button text="Second" 
        [nsRouterLink]="['/second']"></Button> 
      </StackLayout> 

      <router-outlet></router-outlet> 
     </StackLayout> 
    ` 
}) 
export class NavigationApp { 
} 

nativeScriptBootstrap(NavigationApp, [APP_ROUTER_PROVIDERS]); 

enter image description here

+0

Hallo George, ja, würde der Router-Ausgang die Situation ein wenig verbessern, aber es funktioniert nicht mit den hardware-back-buttons auf android funktioniert der page-router-outlet einwandfrei. – SjurWarEagle

+0

Der Router-Ausgang ist ein angulares "verschachteltes" Element, weshalb er nicht in der {N} -Navigation registriert ist. Ich bin mir nicht sicher, ob es Pläne gibt oder ob es sogar möglich ist, diese Verkaufsstelle dem {N} Navigationsstapel zuzuordnen. Die Art und Weise, wie ich die Router-Steckdose benutze, ist für Inhalte, die aktualisiert werden sollten, anstatt zu navigieren. Zur Navigation benutze ich immer den Seitenrouter-Ausgang. –