如何使用typescript

时间:2017-09-07 15:43:31

标签: angular typescript

  

语言: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);

2 个答案:

答案 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 {...}

接收它......