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的双向绑定原理实现相关推荐

  1. angular的双向绑定原理

    http://sentsin.com/web/779.html AngularJS是一款优秀的前端JS框架,已经被用于Google的多款产品当中.AngularJS有着诸多特性,最为核心的是:MVVM ...

  2. v-model双向绑定原理_Vue数据绑定

    这是一篇简单的学习笔记.在学习一段时间Vue后,尝试实现一下Vue的数据绑定. 相关源码:https://github.com/buchuitoudegou/Data-Binding-demo Vue ...

  3. 前端技巧|vue双向绑定原理,助你面试成功

    在面试一些大厂的时候,面试官可能会问到你vue双向数据绑定的原理是什么?有些小伙伴不知道是什么东西,这样你在面试官的眼里就大打折扣了.今天小千就来给大家介绍一下vue的双向绑定原理,千万不要错过啦. ...

  4. 西安电话面试:谈谈Vue数据双向绑定原理,看看你的回答能打几分

    最近我参加了一次来自西安的电话面试(第二轮,技术面),是大厂还是小作坊我在这里按下不表,先来说说这次电面给我留下印象较深的几道面试题,这次先来谈谈Vue的数据双向绑定原理. 情景再现: 当我手机铃声响 ...

  5. vue的双向绑定原理及实现

    前言 使用vue也好有一段时间了,虽然对其双向绑定原理也有了解个大概,但也没好好探究下其原理实现,所以这次特意花了几晚时间查阅资料和阅读相关源码,自己也实现一个简单版vue的双向绑定版本,先上个成果图 ...

  6. vue双向绑定原理及实现

    vue双向绑定原理及实现 一.MVC模式 二.MVVM模式 三.双向绑定原理 1.实现一个Observer 2.实现一个Watcher 3.实现一个Compile 4.实现一个MVVM 四.最后写一个 ...

  7. 记录vue的双向绑定原理及实现

    这里写自定义目录标题 思路分析 实现过程 1.实现一个Observer 2.实现Watcher 此文章是学习以为大神____chen的 <vue的双向绑定原理及实现> vue数据双向绑定是 ...

  8. vue 的双向绑定原理

    目录 一.一句话描述 vue 的双向绑定原理 二.细说 vue 的双向绑定原理 1.vue 2.x 的双向绑定 2.vue 3.x 的双向绑定 3.一个完整的案例 一.一句话描述 vue 的双向绑定原 ...

  9. 【vue双向绑定原理浅析】

    vue双向绑定原理浅析 1.什么是双向绑定? ​ 所谓双向绑定,指的是vue实例中的data与其渲染的DOM元素的内容保持一致,无论谁被改变,另一方会相应的更新为相同的数据.(数据变化更新视图,视图变 ...

最新文章

  1. Nature Genetics:微生物如何适应植物的?
  2. 如何在大一时候系统学习编程?
  3. FD.io/VPP — VPP 的安装部署
  4. java stream 多次读取_多次从具有大量数据的Java InputStream中读取
  5. 20应用统计考研复试要点(part37)--概率论与数理统计
  6. 【Zigbee技术入门教程-02】一图读懂ZStack协议栈的核心思想与工作机理
  7. 1到10用递归c语言,为什么这个递归能输出1到10
  8. ACM算法 -- 数论 -- 开灯关灯问题(数论,整数分解,因子个数,公式推导)
  9. 【飞秋】网络的基础-域名篇
  10. linux 串口内核加载,linux对串口编程的详解(从应用层到内核驱动,包括232,485)
  11. python使用长ping命令_python实现ping命令小程序
  12. lambda java 排序_Java8 用Lambda表达式给List集合排序的实现
  13. Vins-Fusion运行kitti,euroc和tum数据集并使用evo评估
  14. 传说中WM手机工程测试命令
  15. java对接paypal支付应用实例 (v2)
  16. 【Python123】鸡兔同笼
  17. 华为路由器负载均衡_华为AR路由器配置双出口静态IP双链路负载 | 铭泰网络
  18. Eclipse插件集合
  19. j3455linux网卡不亮,J3455 ProxmoxVE v6.0-4 直通物理网卡教程
  20. Preference的用法

热门文章

  1. springmvc传递数组参数
  2. ElasticSearch7.x「新特性」
  3. Nand Flash基础知识与坏块管理机制的研究
  4. PAT—— 害死人不偿命的(3n+1)猜想 (1001)
  5. SECRET SHARING STEP BY STEP
  6. 【译】Making Sense of Ethereum’s Layer 2 Scaling Solutions: State Channels, Plasma, and Truebit
  7. Android 7.0 源码分析项目一期竣工啦
  8. 【分布式共识二】拜占庭将军问题----口头协议
  9. 不是程序员也能看懂的ZCash零知识证明
  10. 【问链-Eos公开课】第5课 组建单机多节点EOS网络