详解AngularJS1.x学习directive 中‘& ’‘=’ ‘@’符号的区别使用


Posted in Javascript onAugust 23, 2017

对于一个Html5框架的好坏,我们有几个评判标准, 轻量级,可拓展,易复用,速度快。

对组件复用这点,angular以directive的形式展示给开发者,是一个还算不错的选择,作为一个UI组件,必定存在数据交互。

那么数据交互过程中的几个符号我们一定要有所了解,以及他们的区别是什么,防止我们在运用过程中出错。

1. 首先,我们看一scope作用域下面@的使用:

html

<!doctype html> 
<html ng-app='myApp'>  
 <head>   

 </head>  
 <body>    

 <div ng-controller="listCtrl">   
  <input type="text" ng-model="t" /> 
   <test title="{{t}}" > 
    <span>我的angularjs</span> 
  </test> 
</div>  
<script type="text/javascript" src="angular.js"></script> 
<script type="text/javascript" src="main.js"></script> 
</body></html>

js

var myApp=angular.module('myApp',[]); 
myApp.controller('listCtrl',function($scope){ 
  $scope.logchore="motorola"; 
}); 


myApp.directive('test',function(){ 
  return { 
    'restrict':'E', 
    scope:{ 
      title:"@" 
    }, 
    template:'<div >{{title}}</div>' 

  } 
});

这个必须指定的,这里的title是指令里scope的@对应的,t就是控制域scope下的 .

2. = 的使用。

html

<!doctype html> 
<html ng-app='myApp'>  
 <head>   

 </head>  
 <body>    

 <div ng-controller="listCtrl">   
  <input type="text" ng-model="t" /> 
   <test title="t" > 
    <p>{{title}}</p> 
    <span>我的angularjs</span> 
  </test> 
</div>  
<script type="text/javascript" src="angular.js"></script> 
<script type="text/javascript" src="main05.js"></script> 
</body></html>

js

var myApp=angular.module('myApp',[]); 
myApp.controller('listCtrl',function($scope){ 
  $scope.logchore="motorola"; 
}); 


myApp.directive('test',function(){ 
  return { 
    'restrict':'E', 
    scope:{ 
      title:"=" 
    }, 
    template:'<div >{{title}}</div>' 

  } 
});

和上面@相比,这个直接赋值等于scope域下的t了

3. 最好我们看看&符号的使用

html

<!doctype html> 
<html ng-app='myApp'>  
 <head>   

 </head>  
 <body>    

 <div ng-controller="listCtrl">   
   <test flavor="logchore()" ></test> 
</div>  
<script type="text/javascript" src="angular.js"></script> 
<script type="text/javascript" src="main05.js"></script> 
</body></html>

js

var myApp=angular.module('myApp',[]); 
myApp.controller('listCtrl',function($scope){ 
  $scope.logchore=function(){ 
    alert('ok'); 
  }; 
}); 


myApp.directive('test',function(){ 
  return { 
    'restrict':'E', 
    scope:{ 
      flavor:"&"  
    }, 
    template:'<div ><button ng-click="flavor()"></button></div>' 

  } 
});

尝试一下,就明白了,简洁明了!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
一个JavaScript变量声明的知识点
Oct 28 Javascript
jQuery 隐藏和显示 input 默认值示例
Jun 03 Javascript
javascript简单实现图片预加载
Dec 03 Javascript
jquery实现简单的自动播放幻灯片效果
Jun 13 Javascript
基于jQuery Circlr插件实现产品图片360度旋转
Sep 20 Javascript
JavaScript iframe数据共享接口实现方法
Jan 06 Javascript
详解jQuery事件
Jan 13 Javascript
深入浅析Node.js单线程模型
Jul 10 Javascript
使用layui实现树形结构的方法
Sep 20 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
Jan 07 Javascript
vue axios请求成功却进入catch的原因分析
Sep 08 Javascript
react中的DOM操作实现
Jun 30 Javascript
JavaScript实现的数字与字符串转换功能示例
Aug 23 #Javascript
最基础的vue.js双向绑定操作
Aug 23 #Javascript
vue组件实现文字居中对齐的方法
Aug 23 #Javascript
React+react-dropzone+node.js实现图片上传的示例代码
Aug 23 #Javascript
深入理解React中何时使用箭头函数
Aug 23 #Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
Aug 23 #jQuery
JS数组交集、并集、差集的示例代码
Aug 23 #Javascript
You might like
hessian 在PHP中的使用介绍
2010/12/13 PHP
php中获得视频时间总长度的另一种方法
2011/09/15 PHP
php程序员应具有的7种能力小结
2014/11/27 PHP
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
jquery下onpropertychange事件的绑定方法
2010/08/01 Javascript
jQuery 常见操作实现方式和常用函数方法总结
2011/05/06 Javascript
Prototype源码浅析 Enumerable部分之each方法
2012/01/16 Javascript
jquery 鼠标滑动显示详情应用示例
2014/01/24 Javascript
javascript检测两个数组是否相似
2015/05/19 Javascript
jQuery实现表格行上移下移和置顶的方法
2015/05/22 Javascript
javascript倒计时效果实现
2015/11/12 Javascript
AngularJS ng-bind-template 指令详解
2016/07/30 Javascript
JS 60秒后重新发送验证码的实例讲解
2017/07/26 Javascript
Vue使用vue-cli创建项目
2017/09/01 Javascript
小程序视频列表中视频的播放与停止的示例代码
2018/07/20 Javascript
vue使用better-scroll实现下拉刷新、上拉加载
2018/11/23 Javascript
vue2.0+vue-router构建一个简单的列表页的示例代码
2019/02/13 Javascript
vue vant中picker组件的使用
2020/11/03 Javascript
[00:43]拉比克至宝魔导师密钥展示
2018/12/20 DOTA
python基础教程之基本内置数据类型介绍
2014/02/20 Python
pycharm+django创建一个搜索网页实例代码
2018/01/24 Python
python+openCV利用摄像头实现人员活动检测
2019/06/22 Python
Python3安装psycopy2以及遇到问题解决方法
2019/07/03 Python
css3+伪元素实现鼠标移入时下划线向两边展开的效果
2017/04/25 HTML / CSS
人力资源行政经理自我评价
2013/10/23 职场文书
食堂个人先进事迹
2014/01/22 职场文书
信息技术专业大学生职业生涯规划书
2014/01/24 职场文书
2014学雷锋活动总结
2014/03/09 职场文书
四风对照检查剖析材料
2014/10/07 职场文书
降价通知函
2015/04/23 职场文书
小学生勤俭节约倡议书
2015/04/29 职场文书
拔河比赛新闻稿
2015/07/17 职场文书
2015年中秋晚会主持稿
2015/07/30 职场文书
高一英语教学反思
2016/03/03 职场文书
解决Tkinter中button按钮未按却主动执行command函数的问题
2021/05/23 Python
手写实现JS中的new
2021/11/07 Javascript