独立作用域:就是在指令中设置了scope: ****

·false 共享父作用域 
·true 继承父作用域,并且新建独立作用域 
·object 不继承父作用域,创建新的独立作用域

一般来说我们会使用第三种方式:为了避免同一父级作用域下,多个指令的相互污染。

在指令中设置了独立作用域之后,就会用三种方式与外界进行交互:@,=,&

1)@

这种使用方式一般使用与指令内部的作用,例如外部的控制器中定义了一个变量,这个变量只能由控制器自己进行修改,指令只能被动接受,此时就是用这种方式。

但是这不是一种双向绑定,因此需要花括号。

<choice-item   sty-obj= "{{styObj}}"></choice-item>

2)= 
这种方式一般用于双向绑定,例如外部控制器定义了一个变量,这个变量不仅控制器能进行修改,并且指令也能进行修改,两边数据交互统一,这个时候就使用这种绑定方式。

这是一种双向绑定的方式意味着绑定的时候不需要花括号。

<choice-item  html-config='htmlConfig' em-config='emConfig'></choice-item>

3)&

这种方式一般是绑定函数,例如在指令内部想传递参数(必须以对象的形式)到外部控制器,并且能触发控制器的某方法。

指令使用场景:
<choice-item part-des = "['个人信息','职务信息','联系信息']"
filter-click = 'filterClick({headConfig:headConfig})' ></choice-item>
指令中:
link: function($scope,el,attr) {
// 点击确认
$scope.filterClick({headConfig: $scope.emConfig});
}
外部控制器:
$scope.filterClick = function(obj){
$scope.headConfig = getSelectedConfig(obj.headConfig);
$scope.filter_show = false;
};

replace: 是一个可选参数,如果设置了这个参数,值必须为true,因为默认值为false。默认值意味着模板会被当作子元素插入到调用此指令的元素内部:

<my-directive></my-directive>
.directive("myDirective",function(){
return {
template:"<h3>世上无难事,只怕有心人</h3>"
}
}) 调用指令之后的结果如下(这是默认replace为false时的情况):
<my-directive>
<h3>世上无难事,只怕有心人</h3>
</my-directive>
如果replace被设置为了true:
.directive("myDirective",function(){
return {
replace:true,
template:"<h3>世上无难事,只怕有心人</h3>"
}
}) 那么指令调用后的结果将是:
<h3>世上无难事,只怕有心人</h3>

官方网址:

http://www.angularjs.net.cn/tutorial/5.html

最新文章

  1. 神经网络之Hebb学习规则
  2. cocoapods卸载与安装的各种坑
  3. PHP 二维数组根据相同的值进行合并
  4. 面试题目-atof与ftoa
  5. mvc 之 @Html.DropDownList
  6. sql 练习(1)
  7. css-div下内容垂直居中
  8. Asp.net中,点击GridView表头实现数据的排序
  9. TCHAR
  10. (function($){...})(jQuery)和$(document).ready(function(){}) 的区别
  11. androidSD卡操作
  12. java学习路线图-----java基础学习路线图(J2SE学习路线图)
  13. SuperMap iObject入门开发系列之五管线属性查询
  14. 伯努利数学习笔记&amp;&amp;Luogu P3711 仓鼠的数学题
  15. navicat激活
  16. 使用PLC作为payload/shellcode分发系统
  17. VS2013+Win10+opencv3.0配置(包括opencv2.4.10版本)
  18. hive的find_in_set函数
  19. C# 连接Oracle数据库,免安装oracle客户端
  20. Ubuntu 16.04: How to install OpenCV

热门文章

  1. 20145221 《Java程序设计》第五周学习总结
  2. FZU 2280 Magic(字符串Hash)题解
  3. Python学习札记(二十八) 模块1
  4. Codeforces Round #408 (Div. 2) C. Bank Hacking
  5. 51Nod 1596 搬货物
  6. Model/ModelMap 和 ModelAndView 的区别使用
  7. 使用触发器定义 WPF 控件的行为
  8. bzoj 1318 [SPOJ744] Longest Permutation (排列)
  9. bzoj2463: [中山市选2009]谁能赢呢? 博弈
  10. hdu2149巴什博弈输出