angular:通过服务实现组件间数据共享

什么是服务

angular中使用服务实现状态管理,在组件间共享数据。

示例

使用命令ng g c myc05ng g c myc06来创建两个组件:
在这里插入图片描述
在这里插入图片描述

在根组件中显示刚刚创建好的两个组件:
在这里插入图片描述

在这里插入图片描述

创建一个服务

使用命令ng generate service 服务名 来创建一个服务。
简写形式:ng g s 服务名

例如,执行ng g s name
在这里插入图片描述

在这里插入图片描述

生成的name.service.ts文件的默认内容如下:
在这里插入图片描述

修改为如下内容:
在这里插入图片描述

在组件中使用服务:采用普通方法书写服务的依赖注入

下面要在组件myc05中使用它:
myc05.component.ts文件:
在这里插入图片描述

myc05.component.html文件:
在这里插入图片描述

同理,下面在myc06组件中使用它:
myc06.component.ts文件:
在这里插入图片描述

myc06.component.html文件:
在这里插入图片描述

展示效果:
在这里插入图片描述

在组件中使用服务:采用语法糖写法书写服务的依赖注入

组件myc05
myc05.component.ts文件:
在这里插入图片描述

myc05.component.html文件:
在这里插入图片描述

组件myc06
myc06.component.ts文件:
在这里插入图片描述

myc06.component.html文件:
在这里插入图片描述

验证通过服务可以实现组件间数据共享(验证服务的数据是同一份数据)

下面来修改组件myc06中的html文件,删除、增加服务的数据,看是否会同步影响到组件myc05。

myc06.component.html文件修改为(新增了增加、删除数据的按钮):
在这里插入图片描述

现在初始展示为:
在这里插入图片描述

点击myc06组件 “张飞”后面的删除按钮,可以发现,myc06和myc05组件中都删除了张飞:
在这里插入图片描述

点击myc06组件下面的 “新增电影”按钮,发现两个组件中都增加了相同的电影:
在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值