我正在为Udemy课程进行角色练习并遇到了一个我无法解决的问题。我试图创建一个具有唯一ID的ClickComponent对象,因此每个对象都有下一次迭代(即1,2,3等)。但是,当我尝试向构造函数添加参数以从调用它的类中获取此id时,我收到上述错误。以下是两个相关文件:
app.component.ts
import { Component } from '@angular/core';
import {ClickComponent} from './click/click.component';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
display = false;
clicks = [];
toggleDisplay() {
this.clicks.push(new ClickComponent(this.clicks.length + 1));
this.display = !this.display;
}
}
click.component.ts
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-click',
templateUrl: './click.component.html',
styleUrls: ['./click.component.css']
})
export class ClickComponent implements OnInit {
id;
timeStamp;
constructor(id: number) {
this.id = 0;
this.timeStamp = new Date();
}
ngOnInit() {
}
}
如果我从点击构造函数中删除参数并将id设置为0,则该错误消失,因此它显然与我如何设置该构造函数有关,但我不明白&#39我错了,因为我是Angular的新手。感谢。
答案 0 :(得分:0)
我认为你不应该把id放在构造函数中,而是将@Input()放在id字段之前。
这就是params从有条不紊的父母传给孩子的方式。
:
如果您想知道如何将参数传递给动态创建的组件,请查看此其他线程:
Angular2 - Pass values to a dynamic component created with ComponentFactory