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获取网页中的js、css、Flash等文件
Dec 20 Javascript
javascript 用记忆函数快速计算递归函数
Mar 15 Javascript
Javascript中的getUTCDay()方法使用详解
Jun 10 Javascript
Node.js与Sails ~项目结构与Mvc实现及日志机制
Oct 14 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
May 02 Javascript
JS实现页面内跳转的简单代码
Sep 03 Javascript
jQuery实现网页拼图游戏
Apr 22 jQuery
详解ES6 Promise的生命周期和创建
Aug 18 Javascript
LayUI数据接口返回实体封装的例子
Sep 12 Javascript
vue 实现锚点功能操作
Aug 10 Javascript
vue集成一个支持图片缩放拖拽的富文本编辑器
Jan 29 Vue.js
ajax请求前端跨域问题原因及解决方案
Oct 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
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
ubuntu10.04配置 nginx+php-fpm模式的详解
2013/06/03 PHP
PHP stripos()函数及注意事项的分析
2013/06/08 PHP
PHP批量上传图片的具体实现方法介绍.
2014/02/26 PHP
ThinkPHP 3.2 版本升级了哪些内容
2015/03/05 PHP
PHP实现转盘抽奖算法分享
2020/04/15 PHP
Nodejs+express+html5 实现拖拽上传
2014/08/08 NodeJs
Node.js中使用事件发射器模式实现事件绑定详解
2014/08/15 Javascript
JavaScript弹出新窗口后向父窗口输出内容的方法
2015/04/06 Javascript
js实现点击按钮后给Div图层设置随机背景颜色的方法
2015/05/06 Javascript
jquery插件NProgress.js制作网页加载进度条
2015/06/05 Javascript
jquery实现全屏滚动
2015/12/28 Javascript
实例详解Nodejs 保存 payload 发送过来的文件
2016/01/14 NodeJs
轻松掌握jQuery中wrap()与unwrap()函数的用法
2016/05/24 Javascript
JS多物体实现缓冲运动效果示例
2016/12/20 Javascript
Vue2几种常见开局方式详解
2017/09/09 Javascript
webpack实用小功能介绍
2018/01/02 Javascript
详解如何从零开始搭建Express+Vue开发环境
2018/07/17 Javascript
详解JS转换数值函数Number()、parseInt()、parseFloat()
2018/08/24 Javascript
小程序获取当前位置加搜索附近热门小区及商区的方法
2019/04/08 Javascript
浅谈javascript事件环微任务和宏任务队列原理
2020/09/12 Javascript
详解Vue数据驱动原理
2020/11/17 Javascript
python模仿网页版微信发送消息功能
2018/02/24 Python
Python实现随机创建电话号码的方法示例
2018/12/07 Python
python通过http下载文件的方法详解
2019/07/26 Python
用python3读取python2的pickle数据方式
2019/12/25 Python
CSS3自定义滚动条样式 ::webkit-scrollbar的示例代码详解
2020/06/01 HTML / CSS
Html5页面上如何禁止手机虚拟键盘弹出
2020/03/19 HTML / CSS
使用layui实现左侧菜单栏及动态操作tab项的方法
2020/11/10 HTML / CSS
时尚孕妇装:HATCH Collection
2019/09/24 全球购物
酒店总经理助理岗位职责
2014/02/01 职场文书
指导教师评语
2014/04/26 职场文书
环保倡议书怎么写
2014/05/16 职场文书
高一课前三分钟演讲稿
2014/09/13 职场文书
魂断蓝桥观后感
2015/06/10 职场文书
Nebula Graph解决风控业务实践
2022/03/31 MySQL