2016-08-16 39 views
1

我想添加路由到我的Angular2應用程序(我使用的是Angular2 rc4)。不過,我在加載新頁面時遇到問題。在我的app.comonent我可以加載所有的路由罰款routerLink,但如果我naviagte通過url的路線,它給我不能GET/路線。它也加載一個沒有錯誤的home.component。我嘗試添加HTTP_PROVIDERS,但沒有運氣。任何想法是什麼導致這個問題?Angular2 - 不能GET/

boot.ts

import {bootstrap} from '@angular/platform-browser-dynamic' 
import {HTTP_PROVIDERS} from '@angular/http'; 
import {provideRouter} from '@angular/router'; 
// Componets 
import {AppComponent} from './app/app.component' 
import {APP_ROUTER_PROVIDERS} from './app/app.routes'; 

bootstrap(AppComponent, [ 
    provideRouter(APP_ROUTER_PROVIDERS), 
    HTTP_PROVIDERS, 
    APP_ROUTER_PROVIDERS 
]).catch(err => console.error(err)); 

app.routes.ts

import {provideRouter, RouterConfig} from '@angular/router'; 
// Components 
import {HomeComponent} from './home/home.component'; 
import {StoreComponent} from './store/store.component'; 


export const routes: RouterConfig = [ 

    { path: '', component: HomeComponent }, 
    { path: 'store', component: StoreComponent }, 

]; 

export const APP_ROUTER_PROVIDERS = [ 
    provideRouter(routes) 
]; 

home.component.ts

import {Component} from '@angular/core'; 

//const template = require('./home.component.html'); 
const template = 'src/app/home/home.component.html'; 

@Component({ 
    selector: 'my-home', 
    templateUrl: template 
}) 

export class HomeComponent { 

} 

store.component.ts

import {Component} from '@angular/core'; 

const template = 'src/app/store/store.component.html'; 
const styles = '/store.component.css'; 

// Mock Models 
interface Product { 
    id: number; 
    logo: string; 
    name: string; 
    price: number; 
}; 
let Categories:string[] = ['Convertible','Sports Car','Truck','Suv'] ; 
let Products:Product[] = [ 
    { id: 0, logo: '/images/Logo.png', name: "Food ", price: 1000 }, 
    { id: 1, logo: '/images/Logo.png', name: "Shelter", price:2000 }, 
    { id: 2, logo: '/images/Logo.png', name: "Health", price:3000 }, 
    { id: 3, logo: '/images/Logo.png', name: "Advocacy", price: 4000}, 
    { id: 4, logo: '/images/Logo.png', name: "Funding", price: 5000 }, 
]; 

@Component({ 
    selector: 'my-store', 
    templateUrl : template 
}) 

export class StoreComponent { 
    categories:string[] = Categories ; 
    products:Product[] = Products ; 

} 

回答

3

bootstrap(...)刪除此行

APP_ROUTER_PROVIDERS 

。這已經被provideRouter(...)

提供我認爲pathMatch: 'full'需要這條路線

{ path: '', component: HomeComponent, pathMatch: 'full' }, 

,但它似乎也沒有爲別人打工。

+0

如果我這樣做,我得到的例外:錯誤的src /應用/ app.component.html:0:0vendor.bundle.js:44226:14 原始異常:錯誤:路徑的無效配置 '未定義':組件,redirectTo,必須提供孩子 – John

+0

pathMatch:'full',也不能修復它。 – John

+0

聽起來像'HomeComponent'或'StoreComponent'或這些的導入問題。 –