博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
anguar4 共享服务在多个组件中数据通信
阅读量:6590 次
发布时间:2019-06-24

本文共 1997 字,大约阅读时间需要 6 分钟。

应用场景,不同组件中操作统一组数据,不论哪个组件对数据进行了操作,其他组件中立马看到效果。这样他们就要共用一个服务实例,是本次的重点,如果不同实例,那么操作的就不是同一组数据,那么就不会有这样的效果,想实现共用服务实例,就是在所有父组件中priviates:[]中引入这个组件,子组件中不需要再次引入,那么他们都是用的父组件中的服务实例。

1、公用服务

import {Injectable} from "@angular/core";@Injectable()export class CommonService {    public dateList: any = [        {            name: "张旭超",            age: 20,            address: "北京市朝阳区"        }    ];    constructor() {    }    addDateFun(data) {        this.dateList.push(data);    }}

2、parent.component.ts

import {Component, OnInit} from "@angular/core";import {CommonService} from "./common.service";// 这里要通过父子公用服务来操作数据,只需要在父组件中引入服务。@Component({    selector: "parent-tag",    templateUrl: "parent.component.html",    providers: [        CommonService    ]})export class ParentComponent implements OnInit {    public list: any = [];    constructor(private commonService: CommonService) {        this.list = commonService.dateList;    }    ngOnInit() {    }}

3、parent.component.html

{
{item.name}}
{
{item.age}}
{
{item.address}}

4、child-one.component.ts

import {Component} from "@angular/core";import {CommonService} from "./common.service";@Component({    selector: "child-one-tag",    templateUrl: "child-one.component.html"})export class ChildOneComponent {    public display: boolean = false;    public username: string = "";    public age: number = 20;    public address: string = "";    constructor(public commonService: CommonService) {    }    showDialog() {        this.display = true;    }    hideDialog() {        this.display = false;    }    addInfoFun() {        let params = {            name: this.username,            age: this.age,            address: this.address        };        this.commonService.addDateFun(params);        params = {};    }}

5、child-one.component.html

姓名:

年龄:

地址:

clipboard.png

转载地址:http://grkio.baihongyu.com/

你可能感兴趣的文章
MyEclipse6.5的反编译插件的安装
查看>>
Jenkins + Ansible + Gitlab之ansible篇
查看>>
cogs 539. 牛棚的灯
查看>>
SQL SERVER 备份数据库到指定路径语句
查看>>
3.Knockout.Js(属性绑定)
查看>>
C++三大特性之多态
查看>>
v140平台工具集与v110工具集选择
查看>>
EF6+Sqlite连接字符串的动态设置
查看>>
下拉加载更多
查看>>
您是哪一种类型的老板?
查看>>
SQL SERVER 2012 只能识别20个CPU的问题
查看>>
设计模式(十)外观模式
查看>>
C/C++语言中Static的作用详述
查看>>
[Android Samples视频系列之ApiDemos] App-Activity-Recreate
查看>>
ASP开发基础
查看>>
MYSQL性能调优
查看>>
LVM自动扩容
查看>>
笔记整理4
查看>>
在eclipse中如何搭建ssh框架
查看>>
idea文件折叠显示出来配置
查看>>