angularjs的双向绑定原理实现
angularjs的双向绑定用js代码来实现
<!DOCTYPE html> <html> <head><meta charset="utf-8" /><title>双向绑定的js实现</title><script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script></head> <body><input type="text" id="txt1" /><input type="text" id="txt2" /><script type="text/javascript">window.onload = function () {let a = '';let oTxt = document.getElementById('txt1');let oTxt2 = document.getElementById("txt2");function $interval(fn, time) {setInterval(function () {fn();apply();}, time);}function $http(url, success, error) {$.ajax({url,dataType: 'json',success(result) {success(result);apply();},error});}//数据->inputfunction apply() {oTxt.value = a;oTxt2.value = a;}//$interval(function () {// a +='|';//}, 100);//$.ajax({// url: 'Data/1.txt',// dataType: 'json',// success(res) {// a = res;// apply();// },// error() {// alert("错了");// }//});//$http('Data/1.txt', function (arr) {// a = arr;//}, function () {// alert('错了');//});//setInterval(function () {// a += '|';// apply();//}, 100);//input->数据 oTxt.oninput = function () {a = this.value;apply();}oTxt2.oninput = function () {a = this.value;apply();}setInterval(function () {console.log(a);}, 100);}</script></body> </html>
升级版的(封装了一下)
<!DOCTYPE html> <html> <head><meta charset="utf-8" /><title>angularjs的双向绑定实现</title><script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script> </head> <body><input type="text" ng-model="a" /><input type="text" ng-model="a" /><select ng-model="a"><option value="1">北京</option><option value="2">上海</option><option value="3">广州</option><option value="4">深圳</option></select><br /><br /><br /><br /> <br /><br /> <br /><br /><input type="text" ng-model="b" /><select ng-model="b"><option value="1">北京</option><option value="2">上海</option><option value="3">广州</option><option value="4">深圳</option></select><script type="text/javascript">window.onload = function () {let $scope = {};let aEle = document.getElementsByTagName('*');//数据->inputfunction apply() {Array.from(aEle).forEach(ele => {let model = ele.getAttribute('ng-model');if (model) {if ($scope[model]) {ele.value = $scope[model];}else {ele.value = '';}}});}//input->数据 Array.from(aEle).forEach(ele => {let model = ele.getAttribute('ng-model');if (model) {ele.oninput = function () {$scope[model] = this.value;apply();}}});}</script> </body> </html>
转载于:https://www.cnblogs.com/zhumeiming/p/9820671.html
angularjs的双向绑定原理实现相关推荐
- angular的双向绑定原理
http://sentsin.com/web/779.html AngularJS是一款优秀的前端JS框架,已经被用于Google的多款产品当中.AngularJS有着诸多特性,最为核心的是:MVVM ...
- v-model双向绑定原理_Vue数据绑定
这是一篇简单的学习笔记.在学习一段时间Vue后,尝试实现一下Vue的数据绑定. 相关源码:https://github.com/buchuitoudegou/Data-Binding-demo Vue ...
- 前端技巧|vue双向绑定原理,助你面试成功
在面试一些大厂的时候,面试官可能会问到你vue双向数据绑定的原理是什么?有些小伙伴不知道是什么东西,这样你在面试官的眼里就大打折扣了.今天小千就来给大家介绍一下vue的双向绑定原理,千万不要错过啦. ...
- 西安电话面试:谈谈Vue数据双向绑定原理,看看你的回答能打几分
最近我参加了一次来自西安的电话面试(第二轮,技术面),是大厂还是小作坊我在这里按下不表,先来说说这次电面给我留下印象较深的几道面试题,这次先来谈谈Vue的数据双向绑定原理. 情景再现: 当我手机铃声响 ...
- vue的双向绑定原理及实现
前言 使用vue也好有一段时间了,虽然对其双向绑定原理也有了解个大概,但也没好好探究下其原理实现,所以这次特意花了几晚时间查阅资料和阅读相关源码,自己也实现一个简单版vue的双向绑定版本,先上个成果图 ...
- vue双向绑定原理及实现
vue双向绑定原理及实现 一.MVC模式 二.MVVM模式 三.双向绑定原理 1.实现一个Observer 2.实现一个Watcher 3.实现一个Compile 4.实现一个MVVM 四.最后写一个 ...
- 记录vue的双向绑定原理及实现
这里写自定义目录标题 思路分析 实现过程 1.实现一个Observer 2.实现Watcher 此文章是学习以为大神____chen的 <vue的双向绑定原理及实现> vue数据双向绑定是 ...
- vue 的双向绑定原理
目录 一.一句话描述 vue 的双向绑定原理 二.细说 vue 的双向绑定原理 1.vue 2.x 的双向绑定 2.vue 3.x 的双向绑定 3.一个完整的案例 一.一句话描述 vue 的双向绑定原 ...
- 【vue双向绑定原理浅析】
vue双向绑定原理浅析 1.什么是双向绑定? 所谓双向绑定,指的是vue实例中的data与其渲染的DOM元素的内容保持一致,无论谁被改变,另一方会相应的更新为相同的数据.(数据变化更新视图,视图变 ...
最新文章
- Nature Genetics:微生物如何适应植物的?
- 如何在大一时候系统学习编程?
- FD.io/VPP — VPP 的安装部署
- java stream 多次读取_多次从具有大量数据的Java InputStream中读取
- 20应用统计考研复试要点(part37)--概率论与数理统计
- 【Zigbee技术入门教程-02】一图读懂ZStack协议栈的核心思想与工作机理
- 1到10用递归c语言,为什么这个递归能输出1到10
- ACM算法 -- 数论 -- 开灯关灯问题(数论,整数分解,因子个数,公式推导)
- 【飞秋】网络的基础-域名篇
- linux 串口内核加载,linux对串口编程的详解(从应用层到内核驱动,包括232,485)
- python使用长ping命令_python实现ping命令小程序
- lambda java 排序_Java8 用Lambda表达式给List集合排序的实现
- Vins-Fusion运行kitti,euroc和tum数据集并使用evo评估
- 传说中WM手机工程测试命令
- java对接paypal支付应用实例 (v2)
- 【Python123】鸡兔同笼
- 华为路由器负载均衡_华为AR路由器配置双出口静态IP双链路负载 | 铭泰网络
- Eclipse插件集合
- j3455linux网卡不亮,J3455 ProxmoxVE v6.0-4 直通物理网卡教程
- Preference的用法
热门文章
- springmvc传递数组参数
- ElasticSearch7.x「新特性」
- Nand Flash基础知识与坏块管理机制的研究
- PAT—— 害死人不偿命的(3n+1)猜想 (1001)
- SECRET SHARING STEP BY STEP
- 【译】Making Sense of Ethereum’s Layer 2 Scaling Solutions: State Channels, Plasma, and Truebit
- Android 7.0 源码分析项目一期竣工啦
- 【分布式共识二】拜占庭将军问题----口头协议
- 不是程序员也能看懂的ZCash零知识证明
- 【问链-Eos公开课】第5课 组建单机多节点EOS网络