角度动画和服务-错误:参数数组必须具有参数

时间:2018-09-15 18:43:53

标签: angular dependency-injection angular-animations

我正在遵循Angular.io的角度动画指南,但是遇到了错误。

这是他们提供的示例代码。

export class Hero {
  constructor(public name: string, public state = 'inactive') { }

  toggleState() {
    this.state = this.state === 'active' ? 'inactive' : 'active';
  }
}

在测试我的服务时,我能够将服务正确注入到我的导航栏组件中,并且我的基本toggleState()函数可以正常工作。但是,当我在服务构造函数中添加 public state ='inactive' 文本时,会出现错误。

  

参数数组必须具有参数。

我一直在阅读服务和DI,找不到正确的文章,这些文章可以向我解释如何在服务中使用公共构造函数,从而可以纠正错误。

我当前的代码:

navbar.component.ts

import { Component, OnInit, Input } from '@angular/core';
import { trigger, state, style, animate, transition } from '@angular/animations';

import { SidebarService } from '../../services/sidebar.service';

@Component({
  selector: 'app-nav-bar',
  templateUrl: './nav-bar.component.html',
  styleUrls: ['./nav-bar.component.css'],      
})
export class NavBarComponent implements OnInit {
  @Input() navbarState;

  constructor(private sidebar: SidebarService) { }

  ngOnInit() {
  }

  toggleNavbar() {
    this.sidebar.toggleNavbar();
  }

sidebar.service.ts

import { Injectable } from '@angular/core';

@Injectable({
  providedIn: 'root'
})
export class SidebarService {

  constructor(public state = 'inactive') { }

  toggleNavbar() {
    if (this.state === 'inactive') {
    console.log('it works');
    }
  }
}

navbar.component.html

<button class="navbar-toggler" type="button" (click)="toggleNavbar()">

0 个答案:

没有答案