我正在使用Ionic 3,并且有一个 part 组件和一个 parts 页面
Parts.html页面:
<ion-row>
<part [part]="part"></part>
</ion-row>
parts.html的 part 变量是以下json:
Part.ts组件:
import { Component, ViewChild, Input, EventEmitter } from "@angular/core";
export class PartComponent {
@Input() part = new EventEmitter<any>();
ngAfterViewInit(){
this.setInitialValues();
}
ngOnChanges(){
this.setInitialValues();
}
setInitialValues() {
console.log(this.part);
if (this.part) {
if (this.part.hasOwnProperty('parts') && this.part.parts.length != 0) {
this.hasParts = true;
}
this.getPartQuestionnaire(this.part.id);
}
}
我在构建离子应用程序时遇到此错误:
类型'EventEmitter'上不存在属性'parts'。
L81:如果(this.part.hasOwnProperty('parts')&& this.part.parts.length!= 0){
L82:this.hasParts = true;
属性“ id” 在类型“ EventEmitter”上不存在。
L84:this.getPartQuestionnaire(this.part.id);
当我注释part.ts的这一行并在控制台中显示可变零件时,我得到了foow图像表示,其中前两个调用显示为null,但是在加载了零件值之后:
当我尝试构建应用程序时,如何解决此错误?
我正在与ionic cordova run browser
答案 0 :(得分:1)
尝试更改行
发件人
@Input() part = new EventEmitter<any>();
收件人
@Input() part : any;
答案 1 :(得分:1)
您的代码示例中有很多错误。
1. @ Input用于接受来自父组件的数据,而我们使用 使用@Output装饰器的EventEmitter。你把它们混合了。
2。写完之后:
@Input() part = new EventEmitter<any>();
这表示变量 part 现在的类型为 EventEmitter ,而不是 Part 。
要使其工作,请按照@Sajeetharan的建议更改零件的类型,或者像这样:
@input Part: IPart; // IPart is an interface which matches the structure of your data.
@Output myOutput = new EventEmitter<any>();