Angular2路由

use*_*732 7 angular2-routing angular

我在Angular中遵循这个路由教程,它只是不起作用.当我使用'comp'选择器来放置它的HTML代码时,它可以正常工作,但是当我尝试使用路由器插座进行路由时,它只显示来自的标头index.html.

我有以下内容:

main.ts:

import * as ng from 'angular2/angular2';
import {Comp} from './comp';
@ng.Component({
    selector: 'my-app'
})
@ng.View({
    directives: [ng.formDirectives, ng.RouterOutlet],
    template: `
    <nav>
      <ul>
        <li>Start</li>
        <li>About</li>
        <li>Contact</li>
      </ul>
    </nav>
    <main>
      <router-outlet></router-outlet>
    </main>
  `
})
@ng.RouteConfig([{ path: '/', component: Comp }])
class AppComponent {
}
ng.bootstrap(AppComponent, [ng.routerInjectables]); 
Run Code Online (Sandbox Code Playgroud)

comp.ts:

import * as ng2 from 'angular2/angular2';
@ng2.Component({
    selector: 'comp'
})
@ng2.View({
    template: `
    <h1>hi<h1>
  `
})
export class Comp {
    constructor() {
    }
}
Run Code Online (Sandbox Code Playgroud)

index.html的:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Test3</title>
    <script src="lib/traceur/traceur.js"></script>
    <script src="lib/system.js/dist/system.js"></script>
    <script src="lib/angular2-build/angular2.js"></script>
    <script src="lib/angular2-build/router.dev.js"></script>
    <script>
        System.config({
            packages: { 
                'js': {
                    defaultExtension: 'js'
                } 
            }
        });
        System.import('/js/main');
    </script>
</head>
<body>
    <h1>Hello There</h1>
    <my-app></my-app>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Eva*_*ice 7

突破性的变化被引入 angular@2.0.0-alpha.41

  • routerInjectables 被重命名为 ROUTER_BINDINGS

  • ROUTER_BINDINGS 然后重命名为 ROUTER_PROVIDERS

旁白:最近发生了很多重大变化,因此几乎没有一个在线示例是可靠的.

使用 ROUTER_PROVIDERS

这包括:

  • RouteRegistry - 已定义路线的注册表
  • LocationStrategy = PathLocationStragety - 按路径匹配路线

这基本上是使用默认设置引导路由器的快捷方式.

例如:

@Component ({
...
})
@View ({
...
})
@RouteConfig ({
...
})
class App {}

bootstrap(App, [ ROUTER_PROVIDERS ]);
Run Code Online (Sandbox Code Playgroud)

资料来源:


Ajd*_*eek -1

由于您没有提供错误消息,因此这里有一个工作示例https://github.com/ajtowf/ng2_play以及视频教程https://youtu.be/ZsGRiHSaOxM