简体   繁体   English

路由在Angular2中不起作用

[英]Routing not working in Angular2

My Routing isn't working in Angular2, to demonstrate the point, I have put the same component as the destination for both the root of my site and /login . 我的路由在Angular2中不起作用,为了说明这一点,我将相同的组件与目标的根放在了网站的根目录和/login The component works at http://localhost:3000 , but at http://localhost:3000/login , I just get a notice "Cannot GET /login". 该组件在http://localhost:3000 ,但是在http://localhost:3000/login ,我仅收到一条通知“ Cannot GET / login”。

app.component.ts: app.component.ts:

import { Component } from 'angular2/core';
import { RouteConfig, ROUTER_DIRECTIVES, ROUTER_PROVIDERS } from 'angular2/router';

import {TodoService} from './todo/services/todo.service';
import { TodoCmp } from './todo/components/todo.component';
import { LoginComponent } from './user/components/login.component';
import { UserService } from './user/services/user.service';


@Component({
  selector: 'my-app',
  template: `
    <h1>{{title}}</h1>
    <router-outlet></router-outlet>
  `,
  styleUrls: ['client/dev/todo/styles/todo.css'],
  directives: [ROUTER_DIRECTIVES],
  providers: [
    ROUTER_PROVIDERS,
    TodoService
  ]
})
@RouteConfig([
  {
    path: '/',
    name: 'TodoCmp',
    component: TodoCmp,
    useAsDefault: true
  },
  {
    path: '/login',
    name: 'TodoCmp',
    component: TodoCmp
  }
])

export class AppComponent {
  title = 'ng2do';
}

Here is a link to my index file. 这是指向我的索引文件的链接。 What have I done wrong? 我做错了什么?

Two routes in one @RouteConfig(...) can't have the same name: 一个@RouteConfig(...)两个路由不能具有相同的名称:

@RouteConfig([
  {
    path: '/',
    name: 'TodoCmp',
    component: TodoCmp,
    useAsDefault: true
  },
  {
    path: '/login',
    name: 'TodoCmp',  <!-- <<<== should be 'Login' instead of 'TodoCmp'
    component: TodoCmp
  }
])

You should move ROUTER_PROVIDERS to bootstrap() (like HTTP_PROVIDERS ) 您应该将ROUTER_PROVIDERS移至bootstrap() (如HTTP_PROVIDERS

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM