详解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 相关文章推荐
使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
May 07 Javascript
JS实现点击按钮自动增加一个单元格的方法
Mar 09 Javascript
jQuery实现的多屏图像图层切换效果实例
May 07 Javascript
jquery实现的V字形显示效果代码
Oct 27 Javascript
js生成随机数的过程解析
Nov 24 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
Aug 05 Javascript
vue项目实现github在线预览功能
Jun 20 Javascript
基于JavaScript实现每日签到打卡轨迹功能
Nov 29 Javascript
微信小程序从注册账号到上架(图文详解)
Jul 17 Javascript
微信小程序云开发获取文件夹下所有文件(推荐)
Nov 14 Javascript
JS实现网页端猜数字小游戏
Mar 06 Javascript
vue:el-input输入时限制输入的类型操作
Aug 05 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
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
2007/05/03 PHP
php向js函数传参的几种方法
2014/08/10 PHP
php动态生成版权所有信息的方法
2015/03/24 PHP
php删除文本文件中重复行的方法
2015/04/28 PHP
PHP简单实现遍历目录下特定文件的方法小结
2017/05/22 PHP
PHP实现微信红包金额拆分试玩的算法示例
2018/04/07 PHP
thinkphp诸多限制条件下如何getshell详解
2020/12/09 PHP
javascript eval和JSON之间的联系
2009/12/31 Javascript
JS去除右边逗号的简单方法
2013/07/03 Javascript
javascript和HTML5利用canvas构建猜牌游戏实现算法
2013/07/17 Javascript
js获取IP和PcName(IE)在vs中可用
2013/08/02 Javascript
JavaScript四种调用模式和this示例介绍
2014/01/02 Javascript
引入JS文件IE6报语法错误或缺少对象问题的解决方法
2014/01/09 Javascript
Visual Studio中js调试的方法图解
2014/06/30 Javascript
事件委托与阻止冒泡阻止其父元素事件触发
2014/09/02 Javascript
从JQuery源码分析JavaScript函数的apply方法与call方法
2014/09/25 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
js输入框使用正则表达式校验输入内容的实例
2017/02/12 Javascript
Vue.js 2.0学习教程之从基础到组件详解
2017/04/24 Javascript
详解vue-router和vue-cli以及组件之间的传值
2017/07/04 Javascript
AngularJs 延时器、计时器实例代码
2017/09/16 Javascript
微信小程序实现简易table表格
2020/06/19 Javascript
js页面加载后执行的几种方式小结
2020/01/30 Javascript
[01:08:33]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python3.4编程实现简单抓取爬虫功能示例
2017/09/14 Python
PyTorch的深度学习入门教程之构建神经网络
2019/06/27 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
Pyecharts绘制全球流向图的示例代码
2020/01/08 Python
Keras Convolution1D与Convolution2D区别说明
2020/05/22 Python
Python通用唯一标识符uuid模块使用案例
2020/09/10 Python
HTML5 Convas APIs方法详解
2015/04/24 HTML / CSS
应届大专生自荐书
2014/06/16 职场文书
老干部工作先进事迹
2014/08/17 职场文书
新店开张活动方案
2014/08/24 职场文书
教师节简报
2015/07/20 职场文书
「偶像大师 MILLION LIVE!」七尾百合子手办开订
2022/03/21 日漫