发布于: 2024-3-2最后更新: 2024-3-2字数 1015阅读时长 3 分钟

准备组件

item-list.component.ts 为父组件,和 item.component.ts 为子组件。

建立父组件item-list

父组件item-list用来显示物品列表,而物品列表的内容item作为子组件用来显示物品以及其内容。
 
模板用*ngFor显示物品信息。[item]="item"是用来绑定item.component.ts内的item

建立子组件item

使用 @Input@Output 装饰器

@Input : 在子组件中接收从父组件传来的数据。
 
item.component.html, 可以用调用 item
 
@Output : 与 EventEmmitter 搭配,从子组件传送数据到父组件。
先导入OutputEventEmitter。在这里,我也是把选择的item输出到父组件里。
 
在模板中,把(click)onSelect()绑定起来。这时,点击该物品时,就会把该item传送到item.component.ts中。
 
在父组件item.component.ts创建selectedItems用来保存被点击过的item
 
现在,我们来稍微修改<app-item>内的代码。把子组件的的selectEvent和父组件的onSelect()绑定在一起。
 
现在我们需要看到selectedItems的输出,较简单的方法是在item-list.component.tsonSelect()增加多一行console.log(selectedItems);。打开浏览器的developer tools就可以看到selectedItemselements了。

小结

基本上到这里就可以知道如何在组件之间传送数据。
  • 在子组件内使用@Input接收从父组件传送来的数据。
  • 使用EventEmitter来定义event,并把event和父组件的函数绑在一起。
  • 使用@Output,通过EventEmitter把数据传送去父组件。

显示从子组件传送来的数据

这时你可以建立另一个子组件来显示selectedItems的内容,但是我只是要显示内容而已,没有要添加其他的功能,也没有日后维护的需求,所以我只是在父组件item.component.html添加一个table来显示已选择的物品,还有把已选择物品的价格加起来。
首先,定义totalPrice。在onSelect()的函数内把item.price加起来。
 
在模板中加入table代码。
 
加入小小的CSS点缀,点开查看CSS代码
 

最终效果

notion image

Loading...
在Angular中导入CSS库

在Angular中导入CSS库

本篇内容将说明如何在Angular导入CSS库的方法。


修改 OpenSSH 的端口号 (Windows)

修改 OpenSSH 的端口号 (Windows)