如何使用material2工具栏,按钮和angular-cli路由器

st_*_*rke 5 typescript1.8 angular-cli angular-material2 angular

我有以下文件:

html的

<nav>
  <md-toolbar color = "primary">
    <a [routerLink] = "['new-patient']">New Patient</a>

    <button md-icon-button
            color = "accent">
      <md-icon class = "material-icons md-24">person_add</md-icon>
    </button>
  </md-toolbar>
</nav>
Run Code Online (Sandbox Code Playgroud)

.TS

import { Component, OnInit } from '@angular/core';
import { ROUTER_DIRECTIVES, ROUTER_PROVIDERS } from '@angular/router';
import { MdToolbar } from '@angular2-material/toolbar';
import { MdIcon, MdIconRegistry } from '@angular2-material/icon';
import { MdButton } from '@angular2-material/button';

@Component({
  moduleId: module.id,
  selector: 'epimss-toolbar',
  templateUrl: 'toolbar.component.html',
  styleUrls: ['toolbar.component.css'],
  providers: [MdIconRegistry],
 directives: [MdButton, MdIcon, MdToolbar, ROUTER_DIRECTIVES],
})
export class ToolbarComponent implements OnInit {

  constructor() {}

  ngOnInit() {
  }
}
Run Code Online (Sandbox Code Playgroud)

我的路由器实际上使用上面的代码.

但是,我正在尝试
<a [routerLink] = "['new-patient']">New Patient</a>
Run Code Online (Sandbox Code Playgroud)

是一个被激活的路线

<button md-icon-button
        color = "accent">
  <md-icon class = "material-icons md-24">person_add</md-icon>
</button>
Run Code Online (Sandbox Code Playgroud)

点击.

我尝试了以下但它不起作用.

<button md-icon-button
        color = "accent"
        [routerLink] = "['new-patient']">
  <md-icon class = "material-icons md-24">person_add</md-icon>
</button>
Run Code Online (Sandbox Code Playgroud)

感谢您给予的任何帮助,谢谢.

Den*_*lek 4

您的问题是因为新路由器不接受[routerLink]元素<button>,只<a>接受标签。

<a>但你很幸运,Material 可以让你在上面制作图标<button>

md-button 上的材质文档

所以试试这个:

<a md-icon-button
        [routerLink] = "['new-patient']"
        color = "accent">
  <md-icon class = "material-icons md-24">person_add</md-icon>
</a>
Run Code Online (Sandbox Code Playgroud)