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 相关文章推荐
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
Jan 09 Javascript
JavaScript伸缩的菜单简单示例
Dec 03 Javascript
jquery实现简单的无缝滚动
Apr 15 Javascript
js基础知识(公有方法、私有方法、特权方法)
Nov 06 Javascript
AngularJS入门教程中SQL实例详解
Jul 27 Javascript
AngularJS 与百度地图的结合实例
Oct 20 Javascript
angularjs 表单密码验证自定义指令实现代码
Oct 27 Javascript
简单实现JS倒计时效果
Dec 23 Javascript
vue2.0+koa2+mongodb实现注册登录
Apr 10 Javascript
vuejs使用axios异步访问时用get和post的实例讲解
Aug 09 Javascript
Vue中实现权限控制的方法示例
Jun 07 Javascript
javascript实现倒计时关闭广告
Feb 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
绿山咖啡和蓝山咖啡
2021/03/04 新手入门
PHP连接局域网MYSQL数据库的简单实例
2013/08/26 PHP
ThinkPHP实现将SESSION存入MYSQL的方法
2014/07/22 PHP
laravel5.2表单验证,并显示错误信息的实例
2019/09/29 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
2019/10/12 PHP
php+iframe 实现上传文件功能示例
2020/03/04 PHP
JQuery 入门实例1
2009/06/25 Javascript
Jquery Ajax.ashx 高效分页实现代码
2009/10/20 Javascript
js函数调用常用方法详解
2012/12/03 Javascript
jQuery获取注册信息并提示实现代码
2013/04/21 Javascript
把input初始值不写value的具体实现方法
2013/07/04 Javascript
node.js中的path.isAbsolute方法使用说明
2014/12/08 Javascript
简介JavaScript中search()方法的使用
2015/06/06 Javascript
JS实现的文字与图片定时切换效果代码
2015/10/06 Javascript
a标签跳转到指定div,jquery添加和移除class属性的实现方法
2016/10/10 Javascript
BootStrapValidator校验方式
2016/12/19 Javascript
JQueryEasyUI框架下的combobox的取值和绑定的方法
2017/01/22 Javascript
nodejs处理图片的中间件node-images详解
2017/05/08 NodeJs
angular-tree-component的使用详解
2018/07/30 Javascript
javascript中关于类型判断的一些疑惑小结
2018/10/14 Javascript
python获取当前日期和时间的方法
2015/04/30 Python
python抓取百度首页的方法
2015/05/19 Python
Python绘制3d螺旋曲线图实例代码
2017/12/20 Python
django 2.0更新的10条注意事项总结
2018/01/05 Python
pytorch动态网络以及权重共享实例
2020/01/06 Python
python+requests接口压力测试500次,查看响应时间的实例
2020/04/30 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
利用Python发送邮件或发带附件的邮件
2020/11/12 Python
关于 HTML5 的七个传说小结
2012/04/12 HTML / CSS
Desigual英国官网:在线购买原创服装
2018/03/09 全球购物
党的生日演讲稿
2014/09/10 职场文书
2015年教师节活动总结
2015/03/20 职场文书
一般纳税人申请报告
2015/05/18 职场文书
劳动仲裁撤诉申请书
2015/05/18 职场文书
入团申请书格式
2019/06/20 职场文书
导游词之西安骊山
2019/12/03 职场文书