语言:Javascript-保存为.ts文件,打字稿
框架:Angular 4
当我输入输入框并点击Add Chip时,我试图编写一个添加芯片(Angular 1中的标签)的应用程序。
我的问题是我有两个变量addSelectedCode和addCode,定义如下:
@Input() addSelectedCode: string[];
@Output() addCode: EventEmitter<string[]> = new EventEmitter;
每当我尝试设置一个等于另一个时,我都会收到错误。
this.addCode = this.addSelectedCode;
以下是错误:
输入&#39; string []&#39;不能分配给EventEmitter&#39; string []&#39;。字符串[]中缺少__isAsync属性。
我不知道如何解决这个错误。任何人都可以解决这个问题吗?
解决:代码中的答案:this.addCode.emit(this.selectedCode);
答案 0 :(得分:2)
如果您尝试使用新阵列发出事件,则需要:
addSelectedCode
但您可能不需要它,<changeSet author="zzz" id="1" runOnChange="true" runInTransaction="true">
<sqlFile path="changelogs/change_03.sql"
relativeToChangelogFile="true"
endDelimiter="$$"
stripComments="false"
splitStatements="false"/>
</changeSet>
将是被调用者可见的实时值(双向绑定)。
答案 1 :(得分:0)
因此,您的父模板中调用上面包含@Input和@Output语句的组件的模板应该有一行,例如<child-component [addselectedCode]="varOfThisParentContainingStringArray" (addCode)="methodInThisParentComponentReciveingStringArray($event)></child-component>
然后在Parent组件中,您需要一个方法:
methodInThisParentComponentRecievingStringArray(evnt: string[]): void {...}
接收它......