详解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温习篇 强大的JQuery选择器
Apr 24 Javascript
extjs中grid中嵌入动态combobox的应用
Jan 01 Javascript
js数组循环遍历数组内所有元素的方法
Jan 18 Javascript
JavaScript:Date类型全面解析
May 19 Javascript
easyui form validate总是返回false的原因及解决方法
Nov 07 Javascript
详解用webpack的CommonsChunkPlugin提取公共代码的3种方式
Nov 09 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
Jan 03 Javascript
JavaScript实现异步图像上传功能
Jul 12 Javascript
JS 实现获取验证码 倒计时功能
Oct 29 Javascript
es6 symbol的实现方法示例
Apr 02 Javascript
小程序如何写动态标签的实现方法
Feb 05 Javascript
一文读懂vue动态属性数据绑定(v-bind指令)
Jul 20 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
用PHP发电子邮件
2006/10/09 PHP
上传文件先创建目录 再上传到目录里面去
2010/12/29 PHP
PHP中VC6、VC9、TS、NTS版本的区别与用法详解
2013/10/26 PHP
IE7中javascript操作CheckBox的checked=true不打勾的解决方法
2009/12/07 Javascript
JavaScript打字小游戏代码
2011/12/26 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
简述JavaScript对传统文档对象模型的支持
2015/06/16 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
2015/12/13 Javascript
javascript时间戳和日期字符串相互转换代码(超简单)
2016/06/22 Javascript
jquery实现百叶窗效果
2017/01/12 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
2017/02/08 Javascript
webpack开发环境和生产环境的深入理解
2018/11/08 Javascript
浅谈vuex actions和mutation的异曲同工
2018/12/13 Javascript
JS实现音乐钢琴特效
2020/01/06 Javascript
十分钟教你上手ES2020新特性
2020/02/12 Javascript
vue中移动端调取本地的复制的文本方式
2020/07/18 Javascript
基于vue 动态菜单 刷新空白问题的解决
2020/08/06 Javascript
vue实现打地鼠小游戏
2020/08/21 Javascript
Vue select 绑定动态变量的实例讲解
2020/10/22 Javascript
python中ConfigParse模块的用法
2014/09/29 Python
Python采用socket模拟TCP通讯的实现方法
2014/11/19 Python
Python的pycurl包用法简介
2015/11/13 Python
python append、extend与insert的区别
2016/10/13 Python
利用PyInstaller将python程序.py转为.exe的方法详解
2017/05/03 Python
python如何实现int函数的方法示例
2018/02/19 Python
详解Python发送email的三种方式
2018/10/18 Python
Python使用Shelve保存对象方法总结
2019/01/28 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
Python模块常用四种安装方式
2020/10/20 Python
New Balance俄罗斯官方网上商店:购买运动鞋
2020/03/02 全球购物
酒后驾驶检讨书
2014/01/27 职场文书
申报优秀教师材料
2014/12/16 职场文书
教师年终个人总结
2015/02/11 职场文书
2015年幼儿园中班下学期工作总结
2015/05/22 职场文书
python 遍历磁盘目录的三种方法
2021/04/02 Python
漫画《催眠麦克风-Dawn Of Divisions》第二卷PV公开
2022/04/05 日漫