深入理解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 相关文章推荐
接收键盘指令的脚本
Jun 26 Javascript
JavaScript 保存数组到Cookie的代码
Apr 14 Javascript
使用js显示当前时间示例
Mar 02 Javascript
javascript制作网页图片上实现下雨效果
Feb 26 Javascript
jQuery CSS3自定义美化Checkbox实现代码
May 12 Javascript
vue.js+boostrap项目实践(案例详解)
Sep 21 Javascript
Javascript实现信息滚动效果
May 18 Javascript
Vue.js简易安装和快速入门(第二课)
Oct 17 Javascript
Vue.js组件间的循环引用方法示例
Dec 27 Javascript
JavaScript中的E-mail 地址格式验证
Mar 28 Javascript
vue实现户籍管理系统
May 29 Javascript
解决vue scoped scss 无效的问题
Sep 04 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
站长助手-网站web在线管理程序 v1.0 下载
2007/05/12 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
2012/09/13 PHP
PHP convert_cyr_string()函数讲解
2019/02/13 PHP
PHP实现提高SESSION响应速度的几种方法详解
2019/08/09 PHP
js查错流程归纳
2012/05/04 Javascript
javascript日期计算实例分析
2015/06/29 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
页面get请求 中文参数方法乱码问题的快速解决方法
2016/05/31 Javascript
js canvas实现适用于移动端的百分比仪表盘dashboard
2017/07/18 Javascript
Javascript快速实现浏览器系统通知
2017/08/26 Javascript
jQuery除指定区域外点击任何地方隐藏DIV功能
2017/11/13 jQuery
Angular5中状态管理的实现
2018/09/03 Javascript
详解nodejs解压版安装和配置(带有搭建前端项目脚手架)
2018/12/06 NodeJs
vue input实现点击按钮文字增删功能示例
2019/01/29 Javascript
关于element-ui的隐藏组件el-scrollbar的使用
2019/05/29 Javascript
vue实现下拉菜单树
2020/10/22 Javascript
Python中的魔法方法深入理解
2014/07/09 Python
Python3.5内置模块之time与datetime模块用法实例分析
2019/04/27 Python
pandas分区间,算频率的实例
2019/07/04 Python
django最快程序开发流程详解
2019/07/19 Python
Flask框架学习笔记之使用Flask实现表单开发详解
2019/08/12 Python
Django用数据库表反向生成models类知识点详解
2020/03/25 Python
Python如何脚本过滤文件中的注释
2020/05/27 Python
零基础小白多久能学会python
2020/06/22 Python
高性能装备提升营地:Kammok
2019/02/27 全球购物
维德科技C#面试题笔试题
2015/12/09 面试题
函授自我鉴定
2013/11/06 职场文书
面包店的创业计划书范文
2014/01/16 职场文书
致跳高运动员加油稿
2014/02/12 职场文书
《自选商场》教学反思
2014/02/14 职场文书
软件毕业生个人鉴定
2014/03/03 职场文书
对孩子的寄语
2014/04/09 职场文书
企业文化理念标语
2014/06/10 职场文书
地震捐款简报
2015/07/21 职场文书
FP-growth算法发现频繁项集——发现频繁项集
2021/06/24 Python
MySQL中B树索引和B+树索引的区别详解
2022/03/03 MySQL