angular4 共享服务在多个组件中数据通信的示例


Posted in Javascript onMarch 30, 2018

应用场景,不同组件中操作统一组数据,不论哪个组件对数据进行了操作,其他组件中立马看到效果。这样他们就要共用一个服务实例,是本次的重点,如果不同实例,那么操作的就不是同一组数据,那么就不会有这样的效果,想实现共用服务实例,就是在所有父组件中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

<table width="500">
 <tr *ngFor="let item of list">
 <td>
  {{item.name}}
 </td>
 <td>
  {{item.age}}
 </td>
 <td>
  {{item.address}}
 </td>
 </tr>
</table>
<child-one-tag></child-one-tag>

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

<p-dialog header="弹窗" [(visible)]="display" [width]="300" appendTo="body" modal="modal">
 <form #myForm="ngForm" name="myForm">
 <p>姓名:<input type="text" name="username" [(ngModel)]="username" pInputText/></p>
 <p>年龄:<input type="number" name="age" [(ngModel)]="age" pInputText/></p>
 <p>地址:<input type="text" name="address" [(ngModel)]="address" pInputText/></p>
 <button pButton label="确定" type="submit" (click)="addInfoFun()"></button>
 <button pButton label="取消" (click)="hideDialog()"></button>
 </form>
</p-dialog>
<button label="添加" pButton (click)="showDialog()"></button>

angular4 共享服务在多个组件中数据通信的示例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js window.event对象详尽解析
Feb 17 Javascript
一个简单的Ext.XTemplate的实例代码
Mar 18 Javascript
JS获取当前日期和时间的简单实例
Nov 19 Javascript
jquery原创弹出层折叠效果点击折叠弹出一个层
Mar 12 Javascript
angularJS 中$attrs方法使用指南
Feb 09 Javascript
JavaScript控制按钮可用或不可用的方法
Apr 03 Javascript
Javascript中的getUTCDay()方法使用详解
Jun 10 Javascript
Angular 常用指令实例总结整理
Dec 13 Javascript
微信小程序wx.request拦截器使用详解
Jul 09 Javascript
vue跳转页面的几种方法(推荐)
Mar 26 Javascript
React实现阿里云OSS上传文件的示例
Aug 10 Javascript
如何在 ant 的table中实现图片的渲染操作
Oct 28 Javascript
js将键值对字符串转为json字符串的方法
Mar 30 #Javascript
webpack4.0打包优化策略整理小结
Mar 30 #Javascript
Angular4学习笔记router的简单使用
Mar 30 #Javascript
vue.js中created方法作用
Mar 30 #Javascript
微信小程序实现全局搜索代码高亮的示例
Mar 30 #Javascript
json对象及数组键值的深度大小写转换问题详解
Mar 30 #Javascript
Vue实现导出excel表格功能
Mar 30 #Javascript
You might like
常用的PHP数据库操作方法(MYSQL版)
2011/06/08 PHP
php利用单例模式实现日志处理类库
2014/02/10 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
2015/04/15 PHP
php抓取并保存网站图片的实现代码
2015/10/28 PHP
php加密之discuz内容经典加密方式实例详解
2017/02/04 PHP
PHP实现微信红包金额拆分试玩的算法示例
2018/04/07 PHP
PHP类的自动加载机制实现方法分析
2019/01/10 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
2019/11/09 PHP
javascript实现图片自动和可控的轮播切换特效
2015/04/13 Javascript
JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果
2015/10/14 Javascript
有关jquery与DOM节点操作方法和属性记录
2016/04/15 Javascript
详解AngularJS controller调用factory
2017/05/19 Javascript
vue 表单输入格式化中文输入法异常问题
2018/05/30 Javascript
angularJs中$scope数据序列化的实例
2018/09/30 Javascript
vue指令做滚动加载和监听等
2019/05/26 Javascript
解决layer.msg 不居中 ifram中的问题
2019/09/05 Javascript
python3+PyQt5自定义视图详解
2018/04/24 Python
基于python3抓取pinpoint应用信息入库
2020/01/08 Python
Python 实现键盘鼠标按键模拟
2020/11/18 Python
让你相见恨晚的十个Python骚操作
2020/11/18 Python
详解解决jupyter不能使用pytorch的问题
2021/02/18 Python
css图标制作教程制作云图标
2014/01/19 HTML / CSS
网络安全方面的面试题
2016/01/07 面试题
法定代表人授权委托书
2014/04/04 职场文书
诚信贷款承诺书
2014/05/30 职场文书
房展策划方案
2014/06/07 职场文书
工作求职自荐信
2014/06/13 职场文书
小学生感恩老师演讲稿
2014/08/28 职场文书
2014年行风建设工作总结
2014/12/01 职场文书
交通安全月活动总结
2015/05/08 职场文书
阳光体育运动标语口号
2015/12/26 职场文书
2016大学生暑期三下乡心得体会
2016/01/23 职场文书
导游词之昭君岛
2020/01/17 职场文书
详解Nginx启动失败的几种错误处理
2021/04/01 Servers
golang日志包logger的用法详解
2021/05/05 Golang
Python中的tkinter库简单案例详解
2022/01/22 Python