详解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 相关文章推荐
Js参数值中含有单引号或双引号问题的解决方法
Nov 06 Javascript
javascript实现瀑布流自适应遇到的问题及解决方案
Jan 28 Javascript
微信小程序 122100版本更新问题解决方案
Dec 22 Javascript
在 Angular 中实现搜索关键字高亮示例
Mar 21 Javascript
JS实现复选框的全选和批量删除功能
Apr 05 Javascript
Vue 中使用 CSS Modules优雅方法
Apr 09 Javascript
Angular实现模版驱动表单的自定义校验功能(密码确认为例)
May 17 Javascript
JS立即执行函数功能与用法分析
Jan 15 Javascript
学习RxJS之JavaScript框架Cycle.js
Jun 17 Javascript
微信小程序 导入图标实现过程详解
Oct 11 Javascript
vue transition 在子组件中失效的解决
Nov 12 Javascript
vue组件开发之slider组件使用详解
Aug 21 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 array_merge下进行数组合并的代码
2008/07/22 PHP
php设计模式 Decorator(装饰模式)
2011/06/26 PHP
php多重接口的实现方法
2015/06/20 PHP
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
2012/10/11 Javascript
jquery插件珍藏(图片局部放大/信息提示框)
2013/01/08 Javascript
解决javascript:window.close()在chrome,Firefox下失效的问题
2013/05/07 Javascript
js在输入框屏蔽按键,只能键入数字的示例代码
2014/01/03 Javascript
jQuery中closest()函数用法实例
2015/01/07 Javascript
jQuery制作效果超棒的手风琴折叠菜单
2015/04/03 Javascript
Jquery注册事件实现方法
2015/05/18 Javascript
基于JS实现checkbox全选功能实例代码
2016/10/31 Javascript
EasyUI 结合JS导出Excel文件的实现方法
2016/11/10 Javascript
JavaScript中关于class的调用方法
2017/11/28 Javascript
JavaScript如何实现图片处理与合成
2020/05/29 Javascript
微信小程序自定义yPicker组件实现省市区三级联动功能
2020/10/29 Javascript
js加减乘除精确运算方法实例代码
2021/01/17 Javascript
pymssql数据库操作MSSQL2005实例分析
2015/05/25 Python
Django小白教程之Django用户注册与登录
2016/04/22 Python
Python中enumerate()函数编写更Pythonic的循环
2018/03/06 Python
python numpy和list查询其中某个数的个数及定位方法
2018/06/27 Python
Python实现二维曲线拟合的方法
2018/12/29 Python
使用pandas 将DataFrame转化成dict
2019/12/10 Python
python3中关于excel追加写入格式被覆盖问题(实例代码)
2020/01/10 Python
wxPython修改文本框颜色过程解析
2020/02/14 Python
Python enumerate内置库用法解析
2020/02/24 Python
django为Form生成的label标签添加class方式
2020/05/20 Python
Python HTMLTestRunner如何下载生成报告
2020/09/04 Python
canvas里面如何基于随机点绘制一个多边形的方法
2018/06/13 HTML / CSS
Trip.com香港网站:Ctrip携程旗下,全球最大的网上旅游社之一
2016/08/01 全球购物
美国最大的农村生活方式零售店:Tractor Supply Company(TSC)
2017/05/15 全球购物
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
村级环境卫生整治方案
2014/05/04 职场文书
学校机关党总支领导班子整改工作方案
2014/10/26 职场文书
2014年安全员工作总结
2014/11/13 职场文书
家访教师心得体会
2016/01/23 职场文书
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python