2017-01-09 4 views
0

非常に基本的なバーコードスキャナで作業していて、コントローラからのビューに根ざした問題があります。 ngOnInit()関数の私のapp.component.tsでは、ローカルIPがアプリケーション設定に保存されているかどうかをチェックし、設定されていなければ、IPを設定できる設定ビューにルートする必要があります。 [nsRouterLink]を使用して設定ビューに移動するとうまくいきますが、これをプログラムで行うことはできないようです...私が間違っていることは何ですか?Angular2/Nativescript:コンポーネントコントローラからプログラムでビューにルーティングできません

app.component.ts: 

    import { Component, OnInit } from "@angular/core"; 
    import { Router } from '@angular/router'; 
    import { RestService } from './services/rest.service'; 
    import { AppSettingsService } from './services/app-settings.service'; 


    @Component({ 
     selector: "main", 
     template : "<page-router-outlet></page-router-outlet>" 
    }) 
    export class AppComponent implements OnInit { 

     constructor(private restService: RestService, private appSettingsService: AppSettingsService, private router: Router) { 

     } 

     ngOnInit() { 

     let ip = this.appSettingsService.findLocalIP(); 
     if (ip !== null) { 
      this.restService.init(ip); 
     } else if (ip === null) { 
      console.log("ip: " + ip); 
      this.router.navigate(['settings']); 
     } 

    } 

    } 

app.routing.ts: 

import { AppComponent } from './app.component'; 
import { HomeComponent } from './pages/home/home.component'; 
import { CheckBarcodesComponent } from './pages/check-barcodes/check-barcodes.component'; 
import { SettingsComponent } from './pages/settings/settings.component'; 

export const routes = [ 
    {path: "", component: HomeComponent}, 
     {path: "checkBarcodes", component: CheckBarcodesComponent}, 
      {path: "settings", component: SettingsComponent} 
]; 

export const navigatableComponents = [ 
HomeComponent, 
CheckBarcodesComponent, 
SettingsComponent 
]; 
+0

があなたの 'はconsole.logん( "IP:" + IP)は、'呼び出されますか? – Peza

+0

@Pezaはい、毎回nullとして記録されます。 – user2094257

答えて

1

完全な編集をしてみてください、その後

constructor(private router: RouterExtensions) { 
} 

コンストラクタ

にnativescriptルート

import { RouterExtensions, PageRoute } from "nativescript-angular/router"; 

からインポートする必要があります。私は今あなたの問題を見つけたと思う。問題は、ルーターアウトレットがあるAppComponentからナビゲートしようとしている可能性が最も高いです。そのため、ngOnInitは解雇されますが、ナビゲートは行われません。私はこの記事を書いていたよう

さて... OPは、ソリューションから今見つけ...:D

+0

Windowsコマンドプロンプトでipがヌルとして記録される... – user2094257

+0

ああ大丈夫、ちょっと誤解されています。ナビゲートしても動作しません。ルーティングモジュールが表示されますか?設定にルーティングしようとしている場所から教えてください:) – Alex

+0

私は自分のルーティングコンポーネントを追加しました。私はIPが設定されていない場合、アプリが起動するとすぐにできるだけ早く設定に移動しようとしています。私はxmlから[nsRouterLink]を使用して設定にナビゲートすることができるので、問題はルーティングコンポーネントではないと推測しています... – user2094257

0

角度とネイティブスクリプトの間の経路の実装にはいくつかの違いがあります。代わりに、角度のルートをインポートするの、あなたは私の質問のこの

this.router.navigate(['settings']); 
+0

私は以前それが好きでしたし、うまくいきませんでした。もう一度RouterExtensionsを使用するように変更しましたが、それでもまだナビゲートしません。 – user2094257

関連する問題