Angular 2.0.1路由器EmptyError:顺序没有元素

Tar*_*yen 5 angular-routing webpack angular

我无法使Angular 2路由工作.我正在使用Angular 2和Webpack.在Angular 2 webpack启动器中,我注意到他们有webpack生成他们的html和他们的链接,但我希望我不必webpack我的html文件.

这是我的app.routes.ts ...

import { ModuleWithProviders } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { HomeComponent } from "./home/home.component";
import { ScheduleComponent } from "./schedule/schedule.component";
import { PageNotFoundComponent } from "./PageNotFoundComponent";

const appRoutes: Routes = [
    { path: '', component: HomeComponent },
    { path: 'schedule', component: ScheduleComponent },
    { path: '**', component: PageNotFoundComponent }
];

export const appRoutingProviders: any[] = [

];

export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes);
Run Code Online (Sandbox Code Playgroud)

这是我的@NgModule代码......

@NgModule({
    imports: [
        BrowserModule,
        HttpModule,
        FormsModule,
        routing ],
    declarations: [
        AppComponent,
        AppBanner,
        AppLogin,
        HomeComponent,
        ScheduleComponent,
        PageNotFoundComponent
    ],
    bootstrap: [ AppComponent ],
    providers: [
        ApplicationState,
        appRoutingProviders
    ]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)

这是计划组件......

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

@Component({
    template: `
    <div>Schedule</div>
    `
})
export class ScheduleComponent {

}
Run Code Online (Sandbox Code Playgroud)

这是我的HTML,我试图添加我的路线...

<a [routerLink]=" ['/schedule'] ">Schedule</a>
Run Code Online (Sandbox Code Playgroud)

我知道这是很多代码,但这也是我的webpack构建.如您所见,webpack任务不会触及我的HTML页面,因此这个webpack代码可能无关紧要......

module.exports = {
    entry: {
        'polyfills': __dirname + '/src/polyfills.ts',
        'vendor': __dirname + '/src/vendor.ts',
        'app': __dirname + '/src/main.ts'
    },

    output: {
        filename: '[name].bundle.js',
        path: __dirname + '/src/bundle/',
        publicPath: '/',
        sourceMapFilename: __dirname + '/src/bundle/[name].bundle.map.js'
    },

    resolve: {
        extensions: ['', '.ts', '.js'],
        alias: { 'rxjs': 'rxjs-es' }
    },

    module: {
        loaders: [
            {
                test: /\.js$/,
                loader: 'babel-loader',
                query: {
                    presets: ['es2015']
                }
            },
            {
                test: /\.ts$/,
                loaders: ['awesome-typescript-loader']
            },
            {
                test: /\.css$/,
                loader: ExtractTextPlugin.extract("style-loader", "css-loader")
            },
            { test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: "file?name=/fonts/[name].[ext]" },
            { test: /\.(woff|woff2)$/, loader:"url?prefix=font/&limit=5000&name=/fonts/[name].[ext]" },
            { test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=application/octet-stream&name=/fonts/[name].[ext]" },
            { test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=image/svg+xml&name=/fonts/[name].[ext]" }
        ]
    },

    plugins: [
        new ExtractTextPlugin('css/[name].css')
    ]
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我点击Schedule链接时,我只是收到一个错误.这是来自区域的详细错误信息......

Unhandled Promise rejection: no elements in sequence ; Zone: angular ;
Task: Promise.then ; Value: Error: no elements in sequence(…)
EmptyError: no elements in sequence
Run Code Online (Sandbox Code Playgroud)

有小费吗?这里有什么问题?

Gün*_*uer 14

pathMatch: 'full'

{ path: '', component: HomeComponent, pathMatch: 'full' },
Run Code Online (Sandbox Code Playgroud)

否则两条路线

{ path: '', component: HomeComponent },
{ path: 'schedule', component: ScheduleComponent },
Run Code Online (Sandbox Code Playgroud)

匹配路线,/schedule因为''匹配,但不消耗路线中的任何东西,然后也'schedule'匹配.