2016-08-05 2 views
1

надеюсь, это понятно :) В моем приложении я использую страницу-маршрутизатор-выход вместе с машинописными и угловыми js. В настоящее время приложение не реагирует, потому что маршрутизация выполняется после полного создания целевой страницы. Изменение, которое я хотел бы сделать в своем приложении, - начать навигацию, пока страница будет построена, а затем ленив инициализировать контент. Есть ли практика, как это сделать?Page router и livecycle

Я пробовал разные livecylcehooks от ngInint до ngAfterViewChecked и несколько между ними, pagerouter, кажется, игнорирует их и только маршрутизатор после того, как все сделано.

У кого-нибудь есть идея о том, как лениться создать страницу?

Приветствие

Торстен

ответ

0

Я не 100% уверен, что поняли вопрос, но мне кажется, вы спрашиваете о Угловом маршрутизаторе с Nativescript. В этом случае у вас есть два варианта: <page-router-outlet>, который вы используете в настоящее время, это загружает все страницы за страницей, создавая самый медленный результат, тогда как вы можете структурировать свои страницы для использования <router-outlet>, который позволяет вам перемещаться по подкомпонентам.

Таким образом, у вас может быть, например, компонент панели инструментов и компонент нижнего колонтитула, который вам не нужно менять, поэтому вы можете рассмотреть только использование маршрутизации для изменения тела. Это означает, что загружается гораздо меньше информации. Я думаю, что это своего рода точка системы компонентов ng2.

Вот общий пример Ф.О. компонента маршрутизатора в действии:

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

Привет Джордж, да, маршрутизатор-розетка улучшит ситуацию немного, но он не работает с аппаратно-обратными кнопками на Android-устройстве, маршрутизатор-ролик работает отлично. – SjurWarEagle

+0

Роутер-выход - это угловой «вложенный» элемент, поэтому он не зарегистрирован в навигации {N}. Я не уверен, есть ли планы или если можно даже сопоставить эту выходную информацию с {N} навигационным стеком. Способ использования роутера-выхода - это контент, который необходимо обновить, а не навигацию. Для навигации я использую страницу-маршрутизатор-выход. –