2

我在使用 Angular2 路由器时遇到问题,我无法解决。

这是我的 index.html

<html lang="">
<head>
  <title>Angular2 Webpack Starter by @gdi2990 from @AngularClass</title>

  ...
  <script src="https://code.angularjs.org/tools/system.js"></script>
  <script src="https://code.angularjs.org/2.0.0-beta.0/angular2.dev.js"></script>
  <!-- base url -->
  <base href="/">
  <!--
    Angular 2
    ES6 browser shim
  -->
  <script src="/lib/es6-shim.js"></script>
</head>
<body>

  <app>
    Loading...
  </app>

  ......
</body>
</html>

这是我的 app.ts:

/*
 * Angular 2 decorators and services
 */
import {Directive, Component, View, ElementRef} from 'angular2/angular2';
import {RouteConfig, Router} from 'angular2/router';
import {Http, Headers} from 'angular2/http';
/*
 * Angular Directives
 */
import {CORE_DIRECTIVES, FORM_DIRECTIVES} from 'angular2/angular2';
import {ROUTER_DIRECTIVES} from 'angular2/router';
import {RouterLink} from 'angular2/router';

import {Home} from '../components/home/home';
import {Banner} from '../components/banner/banner';
import {PickVideo} from '../components/pickvideo/pickvideo'


/*
 * App Component
 * Top Level Component
 */
@Component({

  selector: 'app',

  directives: [ CORE_DIRECTIVES, FORM_DIRECTIVES, ROUTER_DIRECTIVES, RouterLink, Home, Banner ],

 ...
  template: `
  <div class="container">
    <header>
      <banner></banner>
    </header>
    <main>
      <router-outlet></router-outlet>
    </main>
  </div>
  `
})

@RouteConfig([
  { path: '/',            redirectTo: 'home'},
  { path: '/home',                  as: 'Home',          component: Home },
  { path: '/pick-video',           as: 'PickVideo',       component: PickVideo}
])

当页面加载时,它会重定向到主页,我在 home.ts 中导入 ROUTER_DIRECTIVES

在我的 home.ts 中,我有一个 breadcrum.ts,它的 html 代码如下:

  <li class="active">
    <a [routerLink]="['Home']">NAME YOUR APP</a>
  </li>
  <li>
    <a [routerLink]="['PickVideo']">PICK YOUR VIDEOS</a>
  </li>

我还在 breadcrumb.ts 导入 ROUTER_DIRECTIVES

但是当我打开浏览器时,给出的异常如下:

无法绑定到“routerlink”,因为它不是 Breadcrumb > ol:nth-child(0) > li:nth-child(1) > a:nth-child(1)[[routerlink] 中的已知原生属性=['家']]

我做了什么:

我在网上查了一下,它说指令:[ROUTER_DIRECTIVES] 丢失,但我在 app.ts、home.ts、breadcrumb.ts 都添加了这行代码,它不起作用,有什么建议吗?

我正在使用angular2-webpack-starter

4

1 回答 1

3

尝试添加这些

指令:主组件中的
[RouterOutlet,RouterLink,ROUTER_DIRECTIVES] 子组件中的指令:[RouterOutlet,RouterLink]

于 2016-01-06T21:43:02.480 回答