Как использовать панель инструментов material2, кнопку и angular-cli router

У меня есть следующие файлы:

.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>

.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() {
  }
}

Мой роутер на самом деле работает с приведенным выше кодом.

Тем не менее, я пытаюсь
<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>

нажата.

Я пробовал следующее, но это не работает.

<button md-icon-button
        color = "accent"
        [routerLink] = "['new-patient']">
  <md-icon class = "material-icons md-24">person_add</md-icon>
</button>

Ценю любую помощь, оказанную, пожалуйста, и спасибо.

1 ответ

Решение

Ваша проблема в том, что новый маршрутизатор не принимает [routerLink] на <button> элементы, только <a> теги.

Но вам повезло, материал позволяет сделать значок на <a> а также <button>

Материал Документов на MD-кнопку

Так что попробуйте это:

<a md-icon-button
        [routerLink] = "['new-patient']"
        color = "accent">
  <md-icon class = "material-icons md-24">person_add</md-icon>
</a>
Другие вопросы по тегам