深入理解Angularjs向指令传递数据双向绑定机制


Posted in Javascript onDecember 31, 2016

下面来先看一个简单例子

<!DOCTYPE html>
<html lang="zh-CN" ng-app="app">
<head>
  <meta charset="utf-8">
  <title></title>
  <link rel="stylesheet" href="../bootstrap.min.js">
</head>
<body>
  <label>硬编码的input</label>
  <input type="text" ng-model="Url">
  <div my-directive some-attr="Url"></div>

  <script src="../angular.min.js"></script>
  <script>
    angular.module('app', [])
    .directive('myDirective', function() {
      return {
        restrict: 'A', 
        replace: true,
        scope: { 
          myUrl: '=someAttr', // 等号用做 双向绑定 这里不做详细介绍
        }, 
        template: '<div>'+
              '<label>指令中的input</label>'+
              '<input type="text" ng-model="myUrl">'+
              '<a href="{{ myUrl }}">点我试试</a>'+
             '</div>'
        
      }
    })
  </script>
</body>
</html>

这个例子我用通俗的话来过一遍

1.使用隔离作用域 让DOM中的 ng-model="Url" ,这里暂且叫他'A' 与 指令中的 some-attr="Url" --> 'B' 形成双向绑定关系

scope: { 
  myUrl: '=someAttr',
},

经过上面的步骤,B与 隔离作用域中的model myUrl 就指向了同一个地方

2.使隔离作用域中的model myUrl -->'B' 与指令模板中的 ng-model="myUrl" -->'C' 形成双向绑定关系

template: '<div>'+
       '<label>指令中的input</label>'+
       '<input type="text" ng-model="myUrl">'+
       '<a href="{{ myUrl }}">点我试试</a>'+
     '</div>'

这个时候 A B C 就同时指向了 一个地址 所有的事情也就顺理成章了

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
DWR Ext 加载数据
Mar 22 Javascript
jQuery插件ajaxFileUpload实现异步上传文件效果
Apr 14 Javascript
jquery动画效果学习笔记(8种效果)
Nov 13 Javascript
JavaScript实现输入框(密码框)出现提示语
Jan 12 Javascript
浅析Bootstrap表格的使用
Jun 23 Javascript
Angularjs 自定义服务的三种方式(推荐)
Aug 02 Javascript
Bootstrap Table的使用总结
Oct 08 Javascript
js和jquery中获取非行间样式
May 05 jQuery
ES6 Promise对象的应用实例分析
Jun 27 Javascript
详解Vue.js 作用域、slot用法(单个slot、具名slot)
Oct 15 Javascript
easyUI使用分页过滤器对数据进行分页操作实例分析
Jun 01 Javascript
36个正则表达式(开发效率提高80%)
Nov 17 Javascript
Angularjs使用ng-repeat中$even和$odd属性的注意事项
Dec 31 #Javascript
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
Dec 31 #Javascript
angularjs中ng-attr的用法详解
Dec 31 #Javascript
Angularjs中ng-repeat-start与ng-repeat-end的用法实例介绍
Dec 31 #Javascript
Angular JS数据的双向绑定详解及实例
Dec 31 #Javascript
Javascript 实现全屏滚动实例代码
Dec 31 #Javascript
Node.js中如何合并两个复杂对象详解
Dec 31 #Javascript
You might like
有关phpmailer的详细介绍及使用方法
2013/01/28 PHP
php后门URL的防范
2013/11/12 PHP
Laravel 实现数据软删除功能
2019/08/21 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
js实现权限树的更新权限时的全选全消功能
2009/02/17 Javascript
jQuery的一些特性和用法整理小结
2010/01/13 Javascript
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
2011/08/09 Javascript
canvas学习之API整理笔记(一)
2016/12/29 Javascript
JS实现的自动打字效果示例
2017/03/10 Javascript
彻底学会Angular.js中的transclusion
2017/03/12 Javascript
详解如何在Vue2中实现组件props双向绑定
2017/03/29 Javascript
JS实现经典的中国地区三级联动下拉菜单功能实例【测试可用】
2017/06/06 Javascript
Vue.js实现输入框绑定的实例代码
2017/08/24 Javascript
js+SVG实现动态时钟效果
2018/07/14 Javascript
判断iOS、Android以及PC端的示例代码
2018/11/15 Javascript
js核心基础之构造函数constructor用法实例分析
2019/05/11 Javascript
如何使用JavaScript实现栈与队列
2019/06/24 Javascript
js实现随机div颜色位置 类似满天星效果
2019/10/24 Javascript
js里面的变量范围分享
2020/07/18 Javascript
Python简单遍历字典及删除元素的方法
2016/09/18 Python
用 Python 爬了爬自己的微信朋友(实例讲解)
2017/08/25 Python
Python Learning 列表的更多操作及示例代码
2018/08/22 Python
Python 找出出现次数超过数组长度一半的元素实例
2020/05/11 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
2020/05/17 Python
皮尔·卡丹巴西官方商店:Pierre Cardin
2017/07/21 全球购物
英国手机零售商:Carphone Warehouse
2018/06/06 全球购物
小学生中国梦演讲稿
2014/04/23 职场文书
化验室岗位职责
2015/02/14 职场文书
2015年外贸业务员工作总结范文
2015/05/23 职场文书
2015双创工作总结
2015/07/24 职场文书
优质护理服务心得体会
2016/01/22 职场文书
技术入股协议书
2016/03/22 职场文书
党组织结对共建协议书
2016/03/23 职场文书
2016年小学“我们的节日·中秋节”活动总结
2016/04/05 职场文书
抖音短视频(douyin)去水印工具的实现代码
2021/03/30 Javascript
详解Mysql和Oracle之间的误区
2021/05/18 MySQL