我正在遵循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()">