4

私はNativeScript 2.1.0とTypeScript 1.8.10のアプリを、Angular2 rc3で新しい角度ルータバージョン3.0.0-alpha.7を使って作業しています。私はページルータのアウトレットを使用しようとしていますが、エラーが発生しています。私は現在、Windows上のエミュレータでAndroid 5.1.1でコンパイルとテストを行っています。アプリは一度私のために実行したが、それでも私はCannot match any routes: ''エラーがあった。私は何かを変更しましたが(何が分からないのですか)、今実行すると空白のページしか表示されません。これは私のPageNavigationAppコンポーネントです。私の意図はページ1とページ2にアクセスすることですが、私はページルータ/アウトレットコンポーネントの役割を理解していないと思います。それはさておき、私はアプリが実行されているときに多くのエラーが発生しています。'NativeScript、TypeScript、Angular2

は、ここに私のmain.tsのコードファイルの:未定義の「」とプロパティを読み取ることができません「visitExpression」:

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

@Component({ 
    selector: 'nav', 
    directives: [NS_ROUTER_DIRECTIVES], 
    template: `<page-router-outlet></page-router-outlet>` 
}) 
export class PageNavigationApp { 
} 

@Component({ 
    selector: "first", 
    directives: [NS_ROUTER_DIRECTIVES], 
    template: ` 
    <StackLayout> 
     <Label text="First component" class="title"></Label> 
     <Button text="GO TO SECOND" [nsRouterLink]="['/second']" class="link"></Button> 
    </StackLayout>` 
}) 
export class FirstComponent { } 

@Component({ 
    selector: "second", 
    directives: [NS_ROUTER_DIRECTIVES], 
    template: ` 
    <StackLayout> 
     <Label text="Second component" class="title"></Label> 
     <Button text="GO TO FIRST" [nsRouterLink]="['/first']" class="link"></Button> 
    </StackLayout>` 
}) 
export class SecondComponent { } 

const routes: RouterConfig = [ 
    /*{path: "", redirectTo: "/first", terminal: true },*/ 
    {path: "nav", component: PageNavigationApp}, 
    {path: "first", component: FirstComponent}, 
    {path: "second", component: SecondComponent} 
] 

export const APP_ROUTER_PROVIDERS = [ 
    nsProvideRouter(routes, {enableTracing: false}) 
] 

nativeScriptBootstrap(PageNavigationApp, [APP_ROUTER_PROVIDERS]); 

私は取得していたエラーは、任意のルートを照合することはできませんです。

私はこの記事を見つけました。デフォルトルートについては、私は一致するようにコードを変更しました(私はとにかく思っています)。下記参照。 angular2 rc3 router alpha 3.0.0.7 default route

EDIT

私は次の私のコードを変更しましたが、私はvisitExpressionエラーを取得しています:

... 

@Component({ 
    selector: 'nav', 
    directives: [NS_ROUTER_DIRECTIVES], 
    template: `<page-router-outlet></page-router-outlet>` 
}) 

... 

const routes: RouterConfig = [ 
    {path: '', redirectTo: '/first', terminal: false }, 
    {path: 'first', component: FirstComponent}, 
    {path: 'second', component: SecondComponent} 
] 

私は取得しています新しいエラーがある:

Uncaught (in promise): TypeError: Cannot read property 
'visitExpression' of undefined at resolvePromise 
(/data/data/org.nativescript.myapp/files/app/tns_modules/ 
zone.js/dist/zone-node.js:496:32) 
+0

もしかするとわかりませんが、https://github.com/NativeScript/sample-Groceriesのマスターブランチをng2 RC3にアップグレードし、新しいルーターとそれまで実行しています。つまり、Firebase(まだ)は使用していませんが、それでも興味深い参照があると思います。 –

+0

@TJVanTollアップデートTJをありがとう。私はFirebaseを使用していませんが、私はGroceries Appを見直して、違いがあるかどうか確認します。私はあなたが食料雑貨店でページルータ出口を使用していないことを一つ考えます。 – HK1

+0

私は私のiosシミュレータであなたのコードをテストし、素晴らしい仕事をしました。パッケージが最新であるかどうかを確認するには、https://github.com/NativeScript/template-hello-world-ngでpackage.jsonを確認してください。 –

答えて

-1

問題は、ルータのデフォルトページを設定しなかったことです。ルータの設定では、最初に表示したいルートにuseAsDefault: trueを追加する必要があります。

+0

私はそれが廃止された角度ルータでのみ有効なプロパティだと思う。これをルートに追加すると、Visual Studioコードに赤い下線が表示されます。 Angularのドキュメントを参照してください。https://angular.io/docs/ts/latest/guide/router.html – HK1

+0

新しいルータのデフォルトルート( 'path:" "のコメントアウトされたルート)のコードはすでにあります。 –

+0

あなたは正しいのですか?@HK1 –

関連する問題