Javascript @输入和@Output在Angular Cli中始终未定义

Javascript @输入和@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

个人内部的任何值都会打印出来,没有问题,但使用@Input或@Output获得的任何值都不会显示

child.component.ts

@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解释:)