2016-08-16 36 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'或这些的导入问题。 –