详解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 相关文章推荐
JavaScript的面向对象(一)
Nov 09 Javascript
Javascript创建自定义对象 创建Object实例添加属性和方法
Jun 04 Javascript
一个网页标题title的闪动提示效果实现思路
Mar 22 Javascript
JQuery下拉框应用示例介绍
Apr 23 Javascript
高性能JavaScript 重排与重绘(2)
Aug 11 Javascript
javascript作用域链(Scope Chain)用法实例解析
Nov 30 Javascript
JQUERY的AJAX请求缓存里的数据问题处理
Feb 23 Javascript
JS中from 表单序列化提交的代码
Jan 20 Javascript
基于Vue制作组织架构树组件
Dec 06 Javascript
JavaScript中常见内置函数用法示例
May 14 Javascript
Angular6 正则表达式允许输入部分中文字符
Sep 10 Javascript
jquery实现图片无缝滚动 蒙版遮蔽效果
Jan 11 jQuery
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中的use关键字概述
2014/07/23 PHP
PHP查询分页的实现代码
2017/06/09 PHP
js 新浪的一个图片播放图片轮换效果代码
2008/07/15 Javascript
PHP abstract与interface之间的区别
2013/11/11 Javascript
js获取当前页面的url网址信息
2014/06/12 Javascript
判断window.onload是否多次使用的方法
2014/09/21 Javascript
js判断是否按下了Shift键的方法
2015/01/27 Javascript
javascript中的五种基本数据类型
2015/08/26 Javascript
JS+CSS实现大气清新的滑动菜单效果代码
2015/10/22 Javascript
JavaScript弹窗基础篇
2016/04/27 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
2016/07/08 Javascript
Node.js 日志处理模块log4js
2016/08/28 Javascript
HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天
2016/10/31 Javascript
jQuery设置图片等比例缩小的方法
2017/04/29 jQuery
详谈js模块化规范
2017/07/07 Javascript
Express下采用bcryptjs进行密码加密的方法
2018/02/07 Javascript
js捆绑TypeScript声明文件的方法教程
2018/04/13 Javascript
jQuery实现图片下载代码
2019/07/18 jQuery
Vue.js如何使用Socket.IO的示例代码
2019/09/05 Javascript
[01:35]2018完美盛典章节片——共竞
2018/12/17 DOTA
Python 利用切片从列表中取出一部分使用的方法
2019/02/01 Python
python3.6 tkinter实现屏保小程序
2019/07/30 Python
python 内置函数汇总详解
2019/09/16 Python
wxpython多线程防假死与线程间传递消息实例详解
2019/12/13 Python
Python调用scp向服务器上传文件示例
2019/12/22 Python
python 多线程共享全局变量的优劣
2020/09/24 Python
百度软件工程师职位
2013/02/14 面试题
关于孝道的演讲稿
2014/05/21 职场文书
乐观自信演讲稿范文
2014/05/21 职场文书
2015年乡镇财政工作总结
2015/05/19 职场文书
实践论读书笔记
2015/06/29 职场文书
2015年信息化建设工作总结
2015/07/23 职场文书
表扬信范文
2019/04/22 职场文书
Java并发编程必备之Future机制
2021/06/30 Java/Android
Mysql中有关Datetime和Timestamp的使用总结
2021/12/06 MySQL
MySQL库表太大怎么办? 数据库分库分表项目实践
2022/04/11 MySQL