详解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的数字改变的动画效果--可用来做计数器
Aug 11 Javascript
自制的文件上传JS控件可支持IE、chrome、firefox etc
Apr 18 Javascript
jQuery选择器之基本选择器与层次选择器
Mar 03 Javascript
JavaScript中数据结构与算法(一):栈
Jun 19 Javascript
在AngularJS中如何使用谷歌地图把当前位置显示出来
Jan 25 Javascript
基于Bootstrap重置输入框内容按钮插件
May 12 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
May 12 Javascript
ES6与CommonJS中的模块处理的区别
Jun 13 Javascript
JS实现HTML页面中动态显示当前时间完整示例
Jul 30 Javascript
自己动手封装一个React Native多级联动
Sep 19 Javascript
微信小程序实现消息框弹出动画
Apr 18 Javascript
解决vue字符串换行问题(绝对管用)
Aug 06 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文件上传的例子及参数详解
2013/12/12 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十四)
2014/06/26 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
谷歌浏览器 insertCell与appendChild的区别
2009/02/12 Javascript
扩展jQuery 键盘事件的几个基本方法
2009/10/30 Javascript
jquery 的 $(&quot;#id&quot;).html() 无内容的解决方法
2010/06/07 Javascript
有关JavaScript的10个怪癖和秘密分享
2011/08/28 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
2013/04/15 Javascript
利用js 进行输入框自动匹配字符的小例子
2013/06/29 Javascript
零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门
2014/12/20 Javascript
jQuery中parent()方法用法实例
2015/01/07 Javascript
javascript制作的滑动图片菜单
2015/05/15 Javascript
JavaScript数组去重由慢到快由繁到简(优化篇)
2016/08/26 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
2016/12/28 Javascript
jquery平滑滚动到顶部插件使用详解
2017/05/08 jQuery
基于jQuery.i18n实现web前端的国际化
2018/05/04 jQuery
koa上传excel文件并解析的实现方法
2018/08/09 Javascript
vue环形进度条组件实例应用
2018/10/10 Javascript
[47:42]Fnatic vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python MySQLdb Linux下安装笔记
2015/05/09 Python
Python中join函数简单代码示例
2018/01/09 Python
django ajax json的实例代码
2018/05/29 Python
python中ASCII码和字符的转换方法
2018/07/09 Python
python 实现A*算法的示例代码
2018/08/13 Python
浅谈Python中的bs4基础
2018/10/21 Python
linux查找当前python解释器的位置方法
2019/02/20 Python
python中matplotlib条件背景颜色的实现
2019/09/02 Python
解决img标签上下出现间隙的方法
2016/12/14 HTML / CSS
新西兰航空中国官网:Air New Zealand China
2018/07/24 全球购物
编程用JAVA解析XML的方式
2013/07/07 面试题
安全横幅标语
2014/06/09 职场文书
党员民主生活会整改措施
2014/09/26 职场文书
局机关干部群众路线个人对照检查材料思想汇报
2014/10/05 职场文书
介绍信模板
2015/01/31 职场文书
导游词之无锡古运河
2019/11/14 职场文书
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python