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 相关文章推荐
Javascript中的数学函数集合
May 08 Javascript
一个js拖拽的效果类和dom-drag.js浅析
Jul 17 Javascript
js的image onload事件使用遇到的问题
Jul 15 Javascript
在AngularJS中使用jQuery的zTree插件的方法
Apr 21 Javascript
基于jQuery实现的幻灯图片切换
Dec 02 Javascript
关于页面刷新vuex数据消失问题解决方案
Jul 03 Javascript
基于JavaScript实现抽奖系统
Jan 16 Javascript
electron制作仿制qq聊天界面的示例代码
Nov 26 Javascript
详解关于Vuex的action传入多个参数的问题
Feb 22 Javascript
微信公众平台获取access_token的方法步骤
Mar 29 Javascript
详解微信小程序开发聊天室—实时聊天,支持图片预览
May 20 Javascript
JS实现canvas简单小画板功能
Jun 23 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设计模式  Command(命令模式)
2011/06/17 PHP
国外的为初学者写的JavaScript教程
2008/06/09 Javascript
js 页面关闭前的出现提示的实现代码
2011/05/25 Javascript
处理及遍历XML文档DOM元素属性及方法整理
2013/08/23 Javascript
jquery插件uploadify多图上传功能实现代码
2016/08/12 Javascript
使用Angular.js开发的注意事项
2016/10/19 Javascript
微信小程序 input输入框详解及简单实例
2017/01/10 Javascript
JS 实现 ajax 异步浏览器兼容问题
2017/01/21 Javascript
layui选项卡效果实现代码
2017/05/19 Javascript
vue学习之mintui picker选择器实现省市二级联动示例
2017/10/12 Javascript
详解async/await 异步应用的常用场景
2019/05/13 Javascript
js动态获取时间的方法分析
2019/08/02 Javascript
JS实现联想、自动补齐国家或地区名称的功能
2020/07/07 Javascript
如何在JavaScript中使用localStorage详情
2021/02/04 Javascript
[00:31]DOTA2上海特级锦标赛 Fnatic战队宣传片
2016/03/04 DOTA
用Python进行行为驱动开发的入门教程
2015/04/23 Python
详解python中的Turtle函数库
2018/11/19 Python
对python 多个分隔符split 的实例详解
2018/12/20 Python
在python中获取div的文本内容并和想定结果进行对比详解
2019/01/02 Python
计算机二级python学习教程(2) python语言基本语法元素
2019/05/16 Python
Django框架 querySet功能解析
2019/09/04 Python
python使用配置文件过程详解
2019/12/28 Python
python3爬虫GIL修改多线程实例讲解
2020/11/24 Python
XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
2016/03/23 面试题
优秀应届毕业生自荐信
2013/11/16 职场文书
见习期自我鉴定
2014/01/31 职场文书
国际贸易专业求职信
2014/06/04 职场文书
植树造林的宣传标语
2014/06/23 职场文书
走群众路线学习心得体会
2014/10/31 职场文书
离婚协议书范文
2015/01/26 职场文书
2015年管理人员工作总结
2015/05/13 职场文书
如何获取numpy array前N个最大值
2021/05/14 Python
Prometheus 监控MySQL使用grafana展示
2021/08/30 MySQL
Java详细解析==和equals的区别
2022/04/07 Java/Android
Java多线程并发FutureTask使用详解
2022/06/28 Java/Android
springboot+rabbitmq实现智能家居实例详解
2022/07/23 Java/Android