Javascript @输入和@Output在Angular Cli中始终未定义
个人内部的任何值都会打印出来,没有问题,但使用@Input或@Output获得的任何值都不会显示 child.component.tsJavascript @输入和@Output在Angular Cli中始终未定义,javascript,angular,typescript,angular7,Javascript,Angular,Typescript,Angular7,个人内部的任何值都会打印出来,没有问题,但使用@Input或@Output获得的任何值都不会显示 child.component.ts @Component({ selector: 'app-form-input', templateUrl: './form-input.component.html', styleUrls: ['./form-input.component.scss'] }) export class FormInputComponent implements O
@Component({
selector: 'app-form-input',
templateUrl: './form-input.component.html',
styleUrls: ['./form-input.component.scss']
})
export class FormInputComponent implements OnInit {
@Input() fieldType: string;
//with another Input and 1 Output DOM
constructor(
) {
}
ngOnInit() {
console.log(this.fieldType);
}
}
parent.component.html
<app-form-input (value)="action($event)"
[fieldType]="date"
[maxAllowItem]="1">
</app-form-input>
语法有问题吗?
在所有情况下,日志始终显示“未定义”
谢谢我认为这是试图引入组件中定义的变量 尝试以下语法,再次包装字符串,这应确保您传递的是字符串,而不是来自组件的变量,然后输入将知道需要字符串
[fieldType]="'date'"
这是在
"
和'
您可能需要初始化组件内部@Input
和@Output
变量的初始值,因为@Input
属性将是未定义的
,除非它们是从外部提供的,并且@Output
属性需要使用EventEmitter
此外,您还需要检查其中的值,这些值将在更改检测期间执行
您的代码如下所示:
@Component({
selector: 'app-form-input',
templateUrl: './form-input.component.html',
styleUrls: ['./form-input.component.scss']
})
export class FormInputComponent implements OnInit {
@Input() fieldType: string;
@Output() event: EventEmitter<any>
//with another Input and 1 Output DOM
constructor() {
this.fieldType = ''
this.event = new EventEmitter()
}
ngOnInit() {
}
ngOnChanges() { // <- it will run every time and give you the latest value of fieldType
console.log(this.fieldType);
}
}
@组件({
选择器:“应用程序表单输入”,
templateUrl:'./form input.component.html',
样式URL:['./表单输入.component.scss']
})
导出类FormInputComponent实现OnInit{
@Input()字段类型:字符串;
@Output()事件:EventEmitter
//使用另一个输入和一个输出DOM
构造函数(){
this.fieldType=“”
this.event=新的EventEmitter()
}
恩戈尼尼特(){
}
ngchange(){ / /谢谢你的解释。它现在很好。很高兴我能帮忙,如果你的问题被解决了,请考虑标记为接受答案:-一个较短的解决方案,如果值总是相同的,就是使用<代码>字段类型=“日期”< /代码>。我认为它只是语法,最终都会把数据传递给子,但是。[fieldType]将采用一个动态值,就像一个组件变量一样。@TLee它主要是为了方便地区分静态值和动态值,如dince12解释:)