详解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+JS实现仿百度搜索结果中关键字变色效果
Aug 02 Javascript
Jquery中使用show()与hide()方法动画显示和隐藏图片
Oct 08 Javascript
举例讲解JavaScript substring()的使用方法
Nov 09 Javascript
js判断浏览器是否支持严格模式的方法
Oct 04 Javascript
JS判断输入的字符串是否是数字的方法(正则表达式)
Nov 29 Javascript
Vue项目中设置背景图片方法
Feb 21 Javascript
bootstrap 弹出框modal添加垂直方向滚轴效果
Jul 09 Javascript
angular的输入和输出的使用方法
Sep 22 Javascript
express express-session的使用小结
Dec 12 Javascript
vue App.vue中的公共组件改变值触发其他组件或.vue页面监听
May 31 Javascript
js根据后缀判断文件文件类型的代码
May 09 Javascript
JavaScript最完整的深浅拷贝实现方式详解
Feb 28 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
用缓存实现静态页面的测试
2006/12/06 PHP
PHP的foreach中使用引用时需要注意的一个问题和解决方法
2014/05/29 PHP
PHP的Socket网络编程入门指引
2015/08/11 PHP
PHP实现可自定义样式的分页类
2016/03/29 PHP
php die()与exit()的区别实例详解
2016/12/03 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
2017/02/17 PHP
PHP查找一列有序数组是否包含某值的方法
2020/02/07 PHP
Jquery 获取checkbox的checked问题
2011/11/16 Javascript
jquery ajax同步异步的执行最终解决方案
2013/04/26 Javascript
jquery.cookie() 方法的使用(读取、写入、删除)
2013/12/05 Javascript
js控制再次点击按钮之间的间隔时间可防止重复提交
2014/08/01 Javascript
node.js+Ajax实现获取HTTP服务器返回数据
2014/11/26 Javascript
Javascript前端UI框架Kit使用指南之kitjs事件管理
2014/11/28 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
JS实现选项卡实例详解
2015/11/17 Javascript
jquery实现全选功能效果的实现代码
2016/05/05 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
2016/06/09 Javascript
javascript jquery对form元素的常见操作详解
2016/06/12 Javascript
js获取上传文件的绝对路径实现方法
2016/08/02 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
2017/09/03 jQuery
在vue项目实现一个ctrl+f的搜索功能
2020/02/28 Javascript
vue打开新窗口并实现传参的图文实例
2021/03/04 Vue.js
Python爬虫实现百度图片自动下载
2018/02/04 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
对python特殊函数 __call__()的使用详解
2019/07/02 Python
Python字符串hashlib加密模块使用案例
2020/03/10 Python
简单的Python人脸识别系统
2020/07/14 Python
用CSS3实现背景渐变的方法
2015/07/14 HTML / CSS
优秀本科生求职推荐信
2014/02/24 职场文书
党的群众路线教育实践活动个人对照检查剖析材料
2014/09/23 职场文书
离婚协议书范本(2014版)
2014/09/28 职场文书
2014年大班保育员工作总结
2014/12/02 职场文书
职工宿舍管理制度
2015/08/05 职场文书
浅谈PostgreSQL表分区的三种方式
2021/06/29 PostgreSQL
Python各协议下socket黏包问题原理
2022/04/12 Python