(初学者)角度绑定问题

(beginner) angular binding issues

提问人:Berrytos 提问时间:11/8/2023 最后编辑:Berrytos 更新时间:11/9/2023 访问量:57

问:

我只是从编码开始非常新鲜。 我发现自己被困在一些可能非常简单的事情上。 我正在做一本书中的作业 它乱七八糟地告诉我该怎么做,但它不起作用。(本书截图)。用荷兰语写的,所以我翻译:

“ 在页面中的位置 app.component.html ”<app-camping-registratie (campingRegistratieCreate)="onCampingRegistratieCreated($event)"></app-camping-registratie>

在添加上面提到的代码之前,它的工作原理和外观如下所示: 屏幕截图 localhost:4200

添加后,我收到以下错误:图像错误

index.js:493 [webpack-dev-server] 错误 app/app.component.html:5:82 - 错误 TS2345:“事件”类型的参数无法分配给“字符串”类型的参数。 5 <app-camping-registratie (campingRegistratieCreate)=“onCampingRegistratieCreated($event)”> ~~~~~~ app/app.component.ts:5:16 5 模板网址: './app.component.html', ~~~~~~~~~~~~~~~~~~~~~~ 组件 AppComponent 的模板中发生错误。

参考以下代码:

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  campings: string[] = ['De Karnemelkplaats', 'Tro Do Way', 'Camping Kohnenhof', 'Camping Langewald', 'Camping La Fouly'];
registratie: string[] = ['Jaap']

  onCampingCreated(name: string) {
    this.campings.push(name);
  }
  onCampingRegistratieCreated(name: string){
    this.registratie.push(name);
  }
  }

[IMG| app.component.ts]https://i.stack.imgur.com/0Ud2F.png)

<app-camping-invoer (campingCreate)="onCampingCreated($event)"> 
</app-camping-invoer>
<app-camping [campingList]="campings"></app-camping>
<br><br>
<app-camping [campingRegistratieList]="registratie"></app-camping>  
<app-camping-registratie(campingRegistratieCreate)="onCampingRegistratieCreated($event)"></app-camping-registratie>  

[IMG| app.component.html]https://i.stack.imgur.com/dBuAY.png)

链接到整个脚本的 StackBlitz

也许我真的很愚蠢,因为我不理解给出的错误, 但我真的无法弄清楚这里的问题。 如果有人能建议和解释这里发生的事情,我非常感谢,这样我就可以从中学习。

我多次重做整个作业。甚至继续,忽略了错误。根据这本书,这些应该是所有的代码

-浆果

角度 绑定 语法错误

评论

0赞 jonrsharpe 11/8/2023
请参加导览并阅读如何提问
0赞 Ada 11/8/2023
请将您的代码和错误消息添加为文本,而不是图片。此外,在您的问题中添加所有必要的信息,而不是参考评论。

答:

0赞 André Kirchner 11/9/2023 #1

因此,它确实在错误消息和代码中声明,函数 onCampingRegistratieCreated 需要字符串作为参数。$event不是一个字符串,而是一个对象,它确实需要额外的求解/提取数据。

一种选择是将函数重写为如下所示:

onCampingRegistratieCreated(event: Event) {
   ... // event.? <-- whatever info your would like to push
}

另一种解决方法是在模板中设置要推送到该函数的实际字符串,如下所示:

<app-camping-registratie(campingRegistratieCreate)="onCampingRegistratieCreated('Your String')"></app-camping-registratie> 

希望这会有所帮助。祝你好运!