AngularJS双向绑定和依赖反转实例详解


Posted in Javascript onApril 15, 2017

AngularJS双向绑定和依赖反转

一、双向绑定:

UI<-->数据

数据->UI (数据改变UI跟着变)

UI->数据 (UI改变数据跟着变)

数据改变->UI改变原理:

监听数据是否改变,如果改变更新UI数据。

UI改变->数据改变原理:

<html>

<body>

<input type="text" name="name" value="" id="text1" ng_model="a">

<script>

window.onload = function(){

var a='';

var oTxt = document.getElementById('text1');

oTxt.oninput = function(){ //UI值改变数据改变

a = oTxt.value;

}

}

</script>

</body>

</html>

 二、依赖注入:

函数可以自己决定需要什么数据或者多小个数据,而不是外面传什么就用什么。

2.1、调用者决定给多小个参数

<script>

function show(a,b,c){

console.log(arguments.length);

}

show(1); //调用者只给1个参数,调用者决定参数的给予。

</script>

2.2、依赖注入(依赖反转):函数要求要多小参数,就给多小。 就像show(a,b,c)要求3个参数

<script>

function show(a,b,c){

console.log(arguments.length);

}

var scope = {a:12,b:15,c:99,qq:55,i:99};  //假设是函数需要的参数

//实现依赖反转二个步骤
//1、知道show要什么参数

var str = show.toString();

str=str.split('{')[0].match(/\(.*)\/)[0].replace(/\S+/g,'');

str=str.substring(1,str.length-1);

var arr=str.split(',');

//2、给它相应值

var args=[];

for(var i=0;i<arr.length;i++){

args[i]=scope[arr[i]];

}

console.log(args);

show.apply(null,args);

</script>

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
JS this作用域以及GET传输值过长的问题解决方法
Aug 06 Javascript
Asp.Net alert弹出提示信息的几种方法总结
Jan 29 Javascript
jquery通过closest选择器修改上级元素的方法
Mar 17 Javascript
Javascript实现飞动广告效果的方法
May 25 Javascript
JavaScript中pop()方法的使用教程
Jun 09 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
Oct 21 Javascript
详解javascript传统方法实现异步校验
Jan 22 Javascript
使用DeviceOne实现微信小程序功能
Dec 29 Javascript
Three.js基础学习教程
Nov 16 Javascript
Vue 自定义指令实现一键 Copy功能
Sep 16 Javascript
微信小程序转发事件实现解析
Oct 22 Javascript
在vue中实现清除echarts上次保留的数据(亲测有效)
Sep 09 Javascript
JavaScript简单计算人的年龄示例
Apr 15 #Javascript
微信小程序 ES6Promise.all批量上传文件实现代码
Apr 14 #Javascript
微信小程序动态的加载数据实例代码
Apr 14 #Javascript
JAVA中截取字符串substring用法详解
Apr 14 #Javascript
jQuery插件FusionCharts绘制2D双折线图效果示例【附demo源码】
Apr 14 #jQuery
JavaScript实现的选择排序算法实例分析
Apr 14 #Javascript
简单实现JS上传图片预览功能
Apr 14 #Javascript
You might like
php获取通过http协议post提交过来xml数据及解析xml
2012/12/16 PHP
php文件上传类完整实例
2016/05/14 PHP
PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析
2016/10/11 PHP
php 基础函数
2017/02/10 PHP
Javascript事件热键兼容ie|firefox
2010/12/30 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
2014/09/22 Javascript
js css 实现遮罩层覆盖其他页面元素附图
2014/09/22 Javascript
JavaScript结合AJAX_stream实现流式显示
2015/01/08 Javascript
nodejs中使用多线程编程的方法实例
2015/03/24 NodeJs
JS实现的表格行鼠标点击高亮效果代码
2015/11/27 Javascript
解决layui批量传值到后台操作时出现传值为空的问题
2019/09/28 Javascript
vue实现循环滚动列表
2020/06/30 Javascript
微信小程序canvas动态时钟
2020/10/22 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
2021/02/04 jQuery
[01:15]《辉夜杯》北京网鱼队巡礼
2015/10/26 DOTA
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
Python将多份excel表格整理成一份表格
2018/01/03 Python
Python基于递归算法求最小公倍数和最大公约数示例
2018/07/27 Python
解决win64 Python下安装PIL出错问题(图解)
2018/09/03 Python
Python补齐字符串长度的实例
2018/11/15 Python
Python检查和同步本地时间(北京时间)的实现方法
2018/12/03 Python
Python 列表去重去除空字符的例子
2019/07/20 Python
Python 异步协程函数原理及实例详解
2019/11/13 Python
TensorFlow保存TensorBoard图像操作
2020/06/23 Python
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
酒店公关部经理岗位职责
2013/11/24 职场文书
幼儿教师国培感言
2014/02/19 职场文书
学校火灾防控方案
2014/06/09 职场文书
2014年销售工作总结
2014/12/01 职场文书
2015年共青团工作总结
2015/05/15 职场文书
格林童话读书笔记
2015/06/30 职场文书
劳保用品管理制度范本
2015/08/06 职场文书
初三语文教学反思
2016/03/03 职场文书
Angular CLI发布路径的配置项浅析
2021/03/29 Javascript
go结构体嵌套的切片数组操作
2021/04/28 Golang
教你解决往mysql数据库中存入汉字报错的方法
2021/05/06 MySQL