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将从数据库中读取出来的日期型格式化为想要的类型。
Aug 15 Javascript
jQuery 学习6 操纵元素显示效果的函数
Feb 07 Javascript
JS面向对象编程之对象使用分析
Aug 19 Javascript
禁止页面刷新让F5快捷键及右键都无效
Jan 22 Javascript
一行命令搞定node.js 版本升级
Jul 20 Javascript
jQuery中trigger()方法用法实例
Jan 19 Javascript
javascript背景时钟实现方法
Jun 18 Javascript
JavaScript获得指定对象大小的方法
Jul 01 Javascript
AngularJS入门教程之双向绑定详解
Aug 18 Javascript
详解JavaScript常量定义
Jan 03 Javascript
JS实现为动态创建的元素添加事件操作示例
Mar 17 Javascript
使用webpack搭建vue项目及注意事项
Jun 10 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 常见郁闷问题答解
2006/11/25 PHP
PHP中HTTP方式下的Gzip压缩传输方法举偶
2007/02/15 PHP
PHP 5.3.0 安装分析心得
2009/08/07 PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
2012/08/21 PHP
php中的比较运算符详解
2013/10/28 PHP
ThinkPHP分组下自定义标签库实例
2014/11/01 PHP
PHP遍历数组的方法汇总
2015/04/30 PHP
JavaScript 通过模式匹配实现重载
2010/08/12 Javascript
jQuery中setTimeout的几种使用方法小结
2013/04/07 Javascript
javascript读写XML实现广告轮换(兼容IE、FF)
2013/08/09 Javascript
原生js仿jq判断当前浏览器是否为ie,精确到ie6~8
2014/08/30 Javascript
深入理解JavaScript系列(31):设计模式之代理模式详解
2015/03/03 Javascript
jQuery实现列表的全选功能
2015/03/18 Javascript
JavaScript使用Replace进行字符串替换的方法
2015/04/14 Javascript
JavaScript提高加载和执行效率的方法
2017/02/03 Javascript
JS声明对象时属性名加引号与不加引号的问题及解决方法
2018/02/16 Javascript
JS文件中加载jquery.js的实例代码
2018/05/05 jQuery
Vue实现textarea固定输入行数与添加下划线样式的思路详解
2018/06/28 Javascript
15分钟上手vue3.0(小结)
2020/05/20 Javascript
react结合bootstrap实现评论功能
2020/05/30 Javascript
Vue实现多页签组件
2021/01/14 Vue.js
python的random模块及加权随机算法的python实现方法
2017/01/04 Python
Python+Django搭建自己的blog网站
2018/03/13 Python
python3连接mysql获取ansible动态inventory脚本
2020/01/19 Python
Django模板标签中url使用详解(url跳转到指定页面)
2020/03/19 Python
python读取excel进行遍历/xlrd模块操作
2020/07/12 Python
用python-webdriver实现自动填表的示例代码
2021/01/13 Python
家得宝加拿大家装网上商店:The Home Depot加拿大
2016/08/27 全球购物
英国大码女性时装零售商:Evans
2018/08/29 全球购物
婴儿鞋,独特的婴儿服装和配件:Zutano
2018/11/03 全球购物
成龙洗发水广告词
2014/03/14 职场文书
餐饮投资计划书
2014/04/25 职场文书
大气污染防治方案
2014/05/19 职场文书
2019广播稿怎么写
2019/04/17 职场文书
高性能跳频抗干扰宽带自组网电台
2022/02/18 无线电
MySQL数据库如何使用Shell进行连接
2022/04/12 MySQL