2016-07-21 1 views
0

Проблема продемонстрированы на примере проекта: https://github.com/rrcoolp/test-router-app/Nativescript Угловая маршрутизатор 3.0.0-alpha.7 - отказ навигации

Навигация провал: Я создал этот тестовый проект, чтобы представить проблему с NATIVESCRIPT ANGULAR 2 (RC3) Nativescript с маршрутизатором 3.0.0-alpha.7

Проблема проста, переход на другую страницу невозможен после первой навигации. Чтобы увидеть проблему в действии выполните следующие действия:

  1. Нажмите на любую кнопку (GOTO PAGE 1 или GOTO PAGE 2): после первой нажмите на соответствующую страницу, и это содержание оказывается

  2. Любые последующие щелчки либо из кнопок (включая компоненты ДЕТСКИХ) не в навигации

Любая помощь будет оценена ...

Вот пример моего APP_COMP ONENT файл:

import {Component, OnInit, ChangeDetectorRef} from "@angular/core"; 
 
import {NS_ROUTER_DIRECTIVES} from "nativescript-angular/router"; 
 
import {ROUTER_DIRECTIVES, Router} from '@angular/router'; 
 
import {APP_ROUTER_PROVIDERS} from "./app.routes"; 
 
import {Location, LocationStrategy} from "@angular/common"; 
 
import {app_globals} from "./utils/globals"; 
 

 
@Component({ 
 
\t selector: "main", 
 
\t directives: [ROUTER_DIRECTIVES, NS_ROUTER_DIRECTIVES], 
 
\t providers: [APP_ROUTER_PROVIDERS], 
 
\t templateUrl: "masterpage.html" 
 
}) 
 
export class AppComponent implements OnInit { 
 
\t showBackButton: boolean = false; 
 
\t history: any = []; 
 
\t pushState: any; 
 

 
\t constructor(public _router: Router, private _changeDetectionRef: ChangeDetectorRef, private _Location: Location, private _LocationStrategy: LocationStrategy, private _app_globals: app_globals) { 
 
\t \t this._changeDetectionRef = _changeDetectionRef; 
 
\t \t this._LocationStrategy = _LocationStrategy; 
 
\t } 
 
\t ngOnInit() { 
 
\t \t this._app_globals.navigateTo$.subscribe(val => { 
 
\t \t \t console.log("SUBSCRIBED NAVIATE TO:" + val); 
 
\t \t \t this.navigateTo(val); 
 
\t \t }); 
 
\t } 
 

 

 
\t goBack() { 
 
\t \t this._LocationStrategy.back(); 
 
\t } 
 
\t navigateTo(page) { 
 
\t \t console.log("GotoTestPage"+page); 
 
\t \t this._router.navigate(["testpage"+page, "PAGE"+page]).then(() => { 
 
\t \t \t alert("Route Completed but see content didn't change to PAGE"+page); 
 
\t \t \t 
 
\t \t }); 
 
\t } 
 

 
\t GotoTestPage2() { 
 
\t \t this.navigateTo("2"); 
 
\t } 
 

 
\t GotoTestPage1() { 
 
\t \t this.navigateTo("1"); 
 
\t } 
 
}

+0

ТНС запустить Android – Rrcoolp

+0

Убедитесь поставщики маршрутизаторов приложений определяются только один раз. Попробуйте переместить эти провайдеры только в метод bootstap. Я могу взглянуть позже, если это не сработает. В кафе прямо сейчас. – Matthew

+0

Я еще не пробовал использовать выход маршрутизатора '' вы могли бы добавить для него базовый маршрут? https://github.com/NativeScript/nativescript-angular/blob/master/ng-sample/app/examples/router/router-outlet-test.ts#L67 – Matthew

ответ

1

Понял работает, указав абсолютный путь в методе навигационного (добавить ведущий "/"):

this._router.navigate(["/testpage"+page, "PAGE"+page]).then(() => { ... }); 
+0

Спасибо, Александр Вакрилов, я подумал о том же вчера - но побежал в совершенно другую проблему после обновления до RC4 и rputer 3.0.beta.2 ... См. последний код в GIT REPO - и, пожалуйста, сообщите, если у вас есть идеи ... Еще раз спасибо https://github.com/rrcoolp/тест-маршрутизатор-приложение – Rrcoolp