angularJS实现不同视图同步刷新详解


Posted in Javascript onOctober 09, 2018

前言

作为angularJS框架MVC中M和V的桥梁,controller在整个angularJS的web应用中有着举足轻重的作用。

通常我们可以使用单例service的方式在不同的controller里面共享数据。比如在controller1中通过点击事件修改了service里面的值,controller2中再通过点击事件去获取service中被修改的值,即实现了一个值的传递。但是,如果在controller2中没有设置点击事件,如何实现当controller1中修改了值后,controller2自动去获取新值呢?

比如有这么一个场景,你有一个服务,服务中存储着你需要的数据。你有一个列表视图A,以及一个数据显示视图B,通过两个控制器Actl以及Bctl去分别控制这两个视图,并且Actl和Bctl有一个共同的父ctl。当你点击列表视图A中的不同列表项,数据显示视图B会同步的根据你选择的不同列表项去服务中获取相应的数据并将其显示在自己的视图界面上。

 通过$on,$broadcast,$emit方法实现不同视图界面同步刷新

angularJS提供了一整套的事件传播方法,用来在不同的控制器中传递事件以及数据。

$on用于在作用域中监控从子级或父级作用域中传播的事件以及相应的数据。

格式如下:$on(event,data);

$broadcast的作用是将事件从父级作用域传播至子级作用域,包括自己。

格式如下:$broadcast(eventName,args);

$emit的作用是将事件从子级作用域传播至父级作用域,包括自己,直至根作用域。

格式如下:$emit(eventName,args);

通过上面三个方法即能实现我们场景的需求。

方法如下:

1.在列表视图A中,使用譬如$emit('fresh',data)的形式发射一个事件,data可以是你选择的这个列表项的编号等

2.在父ctl上通过$on监听该事件,获取列表视图A传递上来的data,然后通过$broadcast向下广播事件

3.在数据显示视图B中,监听父ctl广播的事件类型,在回调函数里面使用得到的data值去service中获取相应的数据,然后使用$apply方法刷新视图。

以上这篇angularJS实现不同视图同步刷新详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript监测ActiveX控件是否已经安装过的代码
Sep 02 Javascript
js trim函数 去空格函数与正则集锦
Nov 20 Javascript
浅析JavaScript基本类型与引用类型
May 28 Javascript
jQuery点缩略图弹出层显示大图片
Feb 13 Javascript
JavaScript实现自动生成网页元素功能(按钮、文本等)
Nov 21 Javascript
学习JavaScript设计模式(继承)
Nov 26 Javascript
一个用jquery写的判断div滚动条到底部的方法【推荐】
Apr 29 Javascript
Vue 2.0中生命周期与钩子函数的一些理解
May 09 Javascript
浅析Javascript中双等号(==)隐性转换机制
Oct 27 Javascript
对layer弹出框中icon数字参数的说明介绍
Sep 04 Javascript
node使用async_hooks模块进行请求追踪
Jan 28 Javascript
js实现简单商品筛选功能
Feb 02 Javascript
对angular 实时更新模板视图的方法$apply详解
Oct 09 #Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
Oct 09 #Javascript
详解js模板引擎art template数组渲染的方法
Oct 09 #Javascript
angular4强制刷新视图的方法
Oct 09 #Javascript
Angular4.x Event (DOM事件和自定义事件详解)
Oct 09 #Javascript
Vue官方推荐AJAX组件axios.js使用方法详解与API
Oct 09 #Javascript
vue router 源码概览案例分析
Oct 09 #Javascript
You might like
PHP+JS实现的实时搜索提示功能
2018/03/13 PHP
PHP设计模式之工厂方法设计模式实例分析
2018/04/25 PHP
判断脚本加载是否完成的方法
2009/05/26 Javascript
JavaScript 事件的一些重要说明
2009/10/25 Javascript
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
2010/06/30 Javascript
Ext 今日学习总结
2010/09/19 Javascript
别了 JavaScript中的isXX系列
2012/08/01 Javascript
10个基于浏览器的JavaScript调试工具分享
2013/02/07 Javascript
点击显示指定元素隐藏其他同辈元素的方法
2014/02/19 Javascript
node.js中的console.time方法使用说明
2014/12/09 Javascript
原生Js实现简易烟花爆炸效果的方法
2015/03/20 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
webpack+vue.js快速入门教程
2016/10/12 Javascript
JS声明式函数与赋值式函数实例分析
2016/12/13 Javascript
jquery使用EasyUI Tree异步加载JSON数据(生成树)
2017/02/11 Javascript
centos 上快速搭建ghost博客方法分享
2018/05/23 Javascript
bootstrap table表格插件之服务器端分页实例代码
2018/09/12 Javascript
Vue使用mixin分发组件的可复用功能
2019/09/01 Javascript
Python 文件处理注意事项总结
2017/04/10 Python
python实现数据导出到excel的示例--普通格式
2018/05/03 Python
python使用matplotlib画柱状图、散点图
2019/03/18 Python
python日志模块logbook使用方法
2019/09/19 Python
Spartoo芬兰:欧洲最大的网上鞋店
2016/08/28 全球购物
Theory美国官网:后现代都市风时装品牌
2018/05/09 全球购物
韩国流行时尚女装网站:Dintchina(中文)
2018/07/19 全球购物
德国健康生活方式网上商店:Landkaufhaus Mayer
2019/03/12 全球购物
学习保证书范文
2014/04/30 职场文书
春节慰问信范文
2015/02/15 职场文书
匿名检举信范文
2015/03/02 职场文书
大学毕业谢师宴致辞
2015/07/27 职场文书
2015国庆节66周年标语
2015/07/30 职场文书
2015教师个人年度工作总结
2015/10/23 职场文书
三好学生竞选稿范文
2019/08/21 职场文书
浅谈 JavaScript 沙箱Sandbox
2021/11/02 Javascript
Golang 并发下的问题定位及解决方案
2022/03/16 Golang
win11高清晰音频管理器在哪里?win11找不到高清晰音频管理器解决办法
2022/04/08 数码科技