详解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 简单实现下拉菜单
Jan 14 Javascript
整理JavaScript对DOM中各种类型的元素的常用操作
May 05 Javascript
Angular ng-class详解及实例代码
Sep 19 Javascript
jQuery通过ajax快速批量提交表单数据
Oct 25 Javascript
如何处理JSON中的特殊字符
Nov 30 Javascript
js多个物体运动功能实例分析
Dec 20 Javascript
svg动画之动态描边效果
Feb 22 Javascript
Vue组件之Tooltip的示例代码
Oct 18 Javascript
Vue2 轮播图slide组件实例代码
May 31 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
Jun 27 Javascript
layui动态渲染生成select的option值方法
Sep 23 Javascript
vue2路由基本用法实例分析
Mar 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提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
2011/02/08 PHP
PHP循环语句笔记(foreach,list)
2011/11/29 PHP
PHP截断标题且兼容utf8和gb2312编码
2013/09/22 PHP
Symfony2联合查询实现方法
2016/03/18 PHP
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
2018/05/28 PHP
php5对象复制、clone、浅复制与深复制实例详解
2019/08/14 PHP
Javascript图像处理—虚拟边缘介绍及使用方法
2012/12/27 Javascript
jQuery ajax(复习)—Baidu ajax request分离版
2013/01/24 Javascript
jQuery对象初始化的传参方式
2015/02/26 Javascript
javascript实现点击后变换按钮显示文字的方法
2015/05/13 Javascript
JS+CSS实现的漂亮渐变背景特效代码(6个渐变效果)
2016/03/25 Javascript
AngularJS ng-bind-html 指令详解及实例代码
2016/07/30 Javascript
webpack学习教程之publicPath路径问题详解
2017/06/17 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
2018/01/25 Javascript
JS和Canvas实现图片的预览压缩和上传功能
2018/03/30 Javascript
js+html实现点名系统功能
2019/11/05 Javascript
javascript实现弹出层效果
2019/12/10 Javascript
swiper自定义分页器的样式
2020/09/14 Javascript
Python实现测试磁盘性能的方法
2015/03/12 Python
python中yaml配置文件模块的使用详解
2018/04/27 Python
实例讲解python中的协程
2018/10/08 Python
PyCharm配置mongo插件的方法
2018/11/30 Python
对python捕获ctrl+c手工中断程序的两种方法详解
2018/12/26 Python
俄罗斯儿童和青少年服装、鞋子及配件的在线商店:Orby
2020/02/20 全球购物
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
2014/08/09 面试题
linux面试题参考答案(9)
2015/01/07 面试题
介绍一下gcc特性
2015/10/31 面试题
税务干部群众路线教育实践活动自我剖析材料
2014/09/21 职场文书
四风剖析查摆对照检查材料思想汇报
2014/09/24 职场文书
花田少年史观后感
2015/06/16 职场文书
教师节主题班会方案
2015/08/17 职场文书
《正比例》教学反思
2016/02/23 职场文书
2016计划生育先进个人事迹材料
2016/02/29 职场文书
MySQL获取所有分类的前N条记录
2021/05/07 MySQL
Go语言基础知识点介绍
2021/07/04 Golang
详解Python+OpenCV进行基础的图像操作
2022/02/15 Python