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 相关文章推荐
XmlUtils JS操作XML工具类
Oct 01 Javascript
jQuery Ajax提交表单查询获得数据实例代码
Sep 19 Javascript
js调用css属性写法
Sep 21 Javascript
兼容主流浏览器的iframe自适应高度js脚本
Jan 10 Javascript
点击button获取text内容并改变样式的js实现
Sep 09 Javascript
使用JavaScript+canvas实现图片裁剪
Jan 30 Javascript
jquery制作 随机弹跳的小球特效
Feb 01 Javascript
JavaScript encodeURI 和encodeURIComponent
Dec 04 Javascript
微信小程序 闭包写法详细介绍
Dec 14 Javascript
vue按需引入element Transfer 穿梭框
Sep 30 Javascript
angularjs请求数据的方法示例
Aug 06 Javascript
vue实现div单选多选功能
Jul 16 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
全国FM电台频率大全 - 28 甘肃省
2020/03/11 无线电
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
2013/08/07 PHP
php关闭warning问题的解决方法
2016/05/17 PHP
PHP中Trait及其应用详解
2017/02/14 PHP
客户端静态页面玩分页
2006/06/26 Javascript
Javascript 类与静态类的实现(续)
2010/04/02 Javascript
js常用代码段收集
2011/10/28 Javascript
网页禁用右键菜单和鼠标拖动选择方法小结
2015/02/25 Javascript
js上传图片及预览功能实例分析
2015/04/24 Javascript
Javascript使用post方法提交数据实例
2015/08/03 Javascript
jQuery 弹出层插件(推荐)
2016/05/24 Javascript
jquery mobile 实现自定义confirm确认框效果的简单实例
2016/06/17 Javascript
JS实现标签页切换效果
2017/05/04 Javascript
Angular实现的敏感文字自动过滤与提示功能示例
2017/12/29 Javascript
浅谈javascript中的prototype和__proto__的理解
2019/04/07 Javascript
深入理解vue中的slot与slot-scope
2019/04/22 Javascript
VUE实现Studio管理后台之鼠标拖放改变窗口大小
2020/03/04 Javascript
redux处理异步action解决方案
2020/03/22 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
js实现缓动动画
2020/11/25 Javascript
从零学Python之入门(二)基本数据类型
2014/05/25 Python
利用Python批量生成任意尺寸的图片
2016/08/29 Python
Python测试人员需要掌握的知识
2018/02/08 Python
python pandas模块基础学习详解
2019/07/03 Python
django-filter和普通查询的例子
2019/08/12 Python
python 读取二进制 显示图片案例
2020/04/24 Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
2020/06/02 Python
Python 多线程C段扫描、检测 Ping扫描脚本的实现
2020/09/03 Python
应届毕业生自我鉴定范文
2013/12/27 职场文书
公司会计岗位职责
2014/02/13 职场文书
合唱兴趣小组活动总结
2014/07/10 职场文书
碧霞祠导游词
2015/02/09 职场文书
工伤事故赔偿协议书
2015/08/06 职场文书
使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
2021/04/07 HTML / CSS
使用Java去实现超市会员管理系统
2022/03/18 Java/Android
DE1103使用报告
2022/04/05 无线电