@Input和@Output在Angular-Cli中始终未定义

时间:2019-06-17 10:16:32

标签: 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 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>

语法有什么问题吗? 在所有情况下,日志始终显示“未定义”。

谢谢

2 个答案:

答案 0 :(得分:2)

我认为这是在尝试提取组件中定义的变量。

尝试以下语法,再次包装字符串,这应该确保您传递的是字符串,而不是组件中的变量,然后输入将知道需要字符串。

[fieldType]="'date'"

这会将字符串包装在"'中。

答案 1 :(得分:0)

您可能需要在组件内部初始化@Input@Output变量的初始值,因为@Input属性将是undefined,除非从外部和{ {1}}属性需要使用@Output

进行初始化

您还需要检查ngOnChanges内部的值,这些值将在变更检测期间执行

您的代码将如下所示:

EventEmitter