0

기존 PHP 웹 사이트가 있는데 여기에 angular2 구성 요소를 추가하기 시작합니다.RC5 Angular2 경로 기본 구성 요소

URL별로 다른 구성 요소를로드하는 데 도움이되도록 라우터 스크립트를 추가했습니다. 나는 오류 다음 얻을

난 도망 구성 요소 페이지에서 이동

Error: Uncaught (in promise): Error: Cannot match any routes: 'dashboard'

나는이 오류가 사라지게 할 다른 구성 요소를 만들 필요가 있음을 이해. 하지만 너무 많은 페이지가 있기 때문에 다른 구성 요소를 만들고 싶지는 않습니다. 각 페이지마다 구성 요소를 작성하게 될 것입니다.

그래서 기본 구성 요소를 만드는 방법을 묻고 싶습니다. 구성 요소를 사용할 수 없으면 픽업을 수행합니다.이 오류가 사라지게하려면 어떻게해야합니까? 그러면 라우터 나 구성 요소를 찾을 수없는 경우 트리거되지 않습니다. 통로.

{ path: '', component: Home, text: 'Home' } 

을이 내 전체 경로입니다 :

import { ModuleWithProviders } from '@angular/core'; 
import { Routes, RouterModule } from '@angular/router'; 
import {TestComponent} from "./test/test.component"; 


const appRoutes: Routes = [ 
    { path: 'search', component: TestComponent } 
]; 


export const appRoutingProviders: any[] = [ 

]; 

export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes); 

답변

3

경로가 일치하지 않으면 wildcard route을 추가하여 기본 구성 요소로 리디렉션 할 수 있습니다.

{ path: 'default', component: DefaultComponent }, 
{ path: '**', redirectTo: '/default' } 

경로가 일치하지 않으면 기본 구성 요소가 라우터 콘센트에로드됩니다.

희망이 도움이됩니다!

0

내가 기본 경로로 사용 GitHub의에서

export const routes: TextRoute[] = [ 
    { path: '', component: Home, text: 'Home' }, 
    { path: 'accordion', component: AccordionDemo, text: 'Accordion' }, 
    { path: 'alert', component: AlertDemo, text: 'Alert' }, 
    { path: 'buttons', component: ButtonsDemo, text: 'Buttons' }, 
    { path: 'carousel', component: CarouselDemo, text: 'Carousel' }, 
    { path: 'collapse', component: CollapseDemo, text: 'Collapse' }, 
    { path: 'dropdown', component: DropdownDemo, text: 'Dropdown' }, 
    { path: 'pagination', component: PaginationDemo, text: 'Pagination' }, 
    { path: 'popover', component: PopoverDemo, text: 'Popover' }, 
    { path: 'progressbar', component: ProgressbarDemo, text: 'Progressbar' }, 
    { path: 'rating', component: RatingDemo, text: 'Rating' } 
]; 

export const AppRoutes = RouterModule.forRoot(routes, { useHash: true }); 

체크 아웃 내 learning angular2 프로젝트를, 별은 환영합니다.

+0

아니요, 여전히 같은 오류가 발생합니다. – Basit

0

의견이 너무 많습니다. 익스프레스 백엔드를 사용하고 싶습니다. app.use()를 사용하면 문제를 줄일 수 있습니다. 대신 경로를 선언는 경로

또한 완전히 확실하지, PHP에 명시 템플릿 엔진을 변경해야 할 수도 있습니다
router.get('name-of-url', function(res,req,next){ 
    res.sendFile(path to php file to serve) 
}) 

에 다음 app.js

var routes = require('routes'); 
app.use('/name-of-url', routes) 

에보십시오.

관련 문제