4

새로운 각도 라우터 버전 3.0.0-alpha.7을 사용하여 NativeScript 2.1.0 및 TypeScript 1.8.10의 응용 프로그램에서 Angular2 rc3으로 작업하고 있습니다. 페이지 라우터 출력을 사용하려고하는데 오류가 발생합니다. 현재 Windows의 에뮬레이터에서 Android 5.1.1에서 컴파일 및 테스트 중입니다. 응용 프로그램은 나를 위해 한 번 실행했지만 심지어 그때 나는 Cannot match any routes: '' 오류가 발생했습니다. 뭔가 (확실하지 않은 무엇인가) 바뀌었지만 지금 실행하면 빈 페이지, 내 내 PageNavigationApp 구성 요소는 아래 참조하십시오. 저의 의도는 1 페이지와 2 페이지에 대한 액세스 권한을 얻는 것입니다.하지만 페이지 라우터 아웃렛 구성 요소의 역할을 이해하지 못하고있는 것 같습니다. 그건 제쳐두고, 나는 애플 리케이션이 실행되면 많은 오류가 나타납니다. '재산 읽을 수 없습니다'정의의 visitExpression을 ''NativeScript, TypeScript and Angular2

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]); 

내가지고있어 오류가 어떤 경로를 일치하지 않을 수 있습니다

여기 내 main.ts 파일의 코드입니다.

나는이 게시물을 찾았습니다. 기본 경로와 관련하여 (필자는 어쨌든 생각합니다) 일치하도록 코드를 변경했습니다. 아래를 참조하십시오. angular2 rc3 router alpha 3.0.0.7 default route

편집

나는 내 코드를 변경 한 다음하지만 난 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 –

관련 문제