您好,昨天学习了指令作用域为布尔型的情况,

今天主要研究其指针作用域为{}的情况

1、当作用域scope为{}时,子作用域完全创建一个独立的作用域,

  此时,子做预约和外部作用域完全不数据交互

  但是,在实际应用中,子做作用域也还是要和外部数据交互。  

     为止,引入了数据绑定概念

2、隔离作用域数据绑定有三种方式:

  其一、“@”

    格式为:

      scope{

        属性名称:"@"

      }

    子外作用域数据交互表现:

      隔离的子作用域和外部作用域实现单向数据绑定,

      及外部对应值改变,子作用域值也改变,子作用域值改变父作用域值不改变

  其二、“=”:

     格式为:

      scope{

        属性名称:"@"

      }

    子外作用域数据交互表现:

      隔离的子作用域和外部作用域实现双向数据绑定,

      及外部对应值改变,子作用域值也改变,子作用域值改变父作用域值也改变

  其三、“&”:

      格式为:

      scope{

        属性名称:"&"

      }

    子外作用域数据交互表现:

      隔离的子作用域和外部作用域实现实现函数交互,

      及子作用域可以调用外部作用域函数

下面来一个练习:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body ng-app="myApp" ng-init="message='person infor'" ng-controller="myContro">
<h4>外部控制器</h4>
<div>person message:{{message}}</div>
<input type="text" ng-model="message" />
<br />
<br />
<h4>scope={}时,完全隔离一个子作用域,不能与外部进行数据交互</h4>
<div my-direct>
</div>
<br />
<br />
<h4>
scope={@}时,隔离的子作用域和外部作用域实现单向数据绑定,
<br />及外部对应值改变,子作用域值也改变,子作用域值改变父作用域值不改变
</h4>
<div my-direct2 message="{{message}}">
</div>
<br />
<br />
<h4>
scope={=}时,隔离的子作用域和外部作用域实现双向数据绑定,
<br />及外部对应值改变,子作用域值也改变,子作用域值改变父作用域值也改变
</h4>
<div my-direct3 message="message">
</div>
<br />
<br />
<h4>
scope={&}时,隔离的子作用域和外部作用域实现实现函数交互,
<br />及子作用域可以调用外部作用域函数
</h4>
<div my-direct4 get-date="getDate()">
</div>
</body>
</html>
<script src="Scripts/angular.js"></script>
<script type="text/javascript">
var app = angular.module("myApp", []); app.controller("myContro", function ($scope, $filter) {
$scope.getDate = function () {
$scope.message = $filter("date")(Date.now(),"yyyy-MM-dd HH:mm:ss");
}
}); app.directive("myDirect", function () {
return {
restrict: "A",
replace: true,
scope:{},
template: "<div ng-init=\"message='child infor'\">\
child message:{{message}}<br/>\
<input type='text' ng-model='message'/></div>"
}
}); app.directive("myDirect2", function () {
return {
restrict: "A",
replace: true,
scope: {
message: "@",
},
template: "<div ng-init=\"message='child infor'\">\
child message:{{message}}<br/>\
<input type='text' ng-model='message'/></div>"
}
}); app.directive("myDirect3", function () {
return {
restrict: "A",
replace: true,
scope: {
message: "=",
},
template: "<div ng-init=\"message='child infor'\">\
child message:{{message}}<br/>\
<input type='text' ng-model='message'/></div>"
}
}); app.directive("myDirect4", function () {
return {
restrict: "A",
replace: true,
scope: {
getDate: "&",
},
template: "<div ng-init=\"message='child infor'\">\
child message:{{message}}<br/>\
<input type='text' ng-model='message'/>\
<input type='button' value='获取系统时间'\
ng-click='getDate()'/></div>"
}
});
</script>

好了,时间不早了,周五早点休息

通过最近学习,感觉进度很慢,后续加快学习步骤

明天继续学习指令的其他属性

angularjs学习第九天笔记(指令作用域【隔离作用域】研究)的更多相关文章

  1. Elasticsearch7.X 入门学习第九课笔记-----聚合分析Aggregation

    原文:Elasticsearch7.X 入门学习第九课笔记-----聚合分析Aggregation 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. ...

  2. AngularJS高级程序设计读书笔记 -- 指令篇 之 内置指令

    1. 内置指令(10-12 章) AngularJS 内置超过 50 个内置指令, 包括 数据绑定,表单验证,模板生成,时间处理 和 HTML 操作. 指令暴露了 AngularJS 的核心功能, 如 ...

  3. angularjs学习第八天笔记(指令作用域研究)

    您好,在前两天对指令的简单了解和系统指令学习后 今天主要研究其指针作用域的相关事情 每一个指令在创建时,其实就构成了自己的一个小的模块单元. 其对于的模块单元都有着其对于的作用域,其中作用域一般有两种 ...

  4. angularjs学习第一天笔记

    您好,我是一名后端开发工程师,由于工作需要,现在系统的从0开始学习前端js框架之angular,每天把学习的一些心得分享出来,如果有什么说的不对的地方,请多多指正,多多包涵我这个前端菜鸟,欢迎大家的点 ...

  5. AngularJS高级程序设计读书笔记 -- 指令篇 之 自定义指令

    2. 自定义指令(15-17 章) Module.directive(name, factory) 2.1 创建自定义指令的方法 Module.directive(name, factory) 示例 ...

  6. angularjs学习第二天笔记---过滤器

    您好,我是一名后端开发工程师,由于工作需要,现在系统的从0开始学习前端js框架之angular,每天把学习的一些心得分享出来,如果有什么说的不对的地方,请多多指正,多多包涵我这个前端菜鸟,欢迎大家的点 ...

  7. iOS 阶段学习第九天笔记(内存管理)

    iOS学习(C语言)知识点整理 一.内存管理 1)malloc , 用于申请内存; 结构void *malloc(size_t),需要引用头文件<stdlib.h>:在堆里面申请内存,si ...

  8. Angularjs学习笔记7_directive1

    1.基础知识 directive()接受两个参数 · name:字符串,指令的名字 · factory_function:函数,指令的行为 应用启动时,以name作为该应用的标识注册factory_f ...

  9. angularjs学习第七天笔记(系统指令学习)

    您好,接着在昨天对简单指令学习了解以后,今天开始学习了解angularjs中的系统指令 系统指令大部分都是以ng开始,这也是为什么在自定义指令命名时不要以ng开始的原因所在 系统指令在学习了分成两个部 ...

随机推荐

  1. ABP框架系列之五:(Unit Of Work-工作单元)

    Introduction Connection and transaction management is one of the most important concepts in an appli ...

  2. Angularjs自定义指令计算浏览器高度

    <!DOCTYPE html> <html ng-app="app"> <head> <title>柳絮飞祭奠</title& ...

  3. web服务器原理(作业四)

      Web服务器简介:Web服务器是指驻留于因特网上某种类型计算机的程序.当web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件发送到该浏览器上,附带的信息会告诉浏览器如何查看该 ...

  4. 跨域ajax问题

    1. Intro 在用ajax请求时,请求的域名和所在域名不同,会出现跨域问题导致请求失败. 复杂请求: 条件: .请求方式:HEAD.GET.POST .请求头信息: Accept Accept-L ...

  5. Alpha冲刺-(9/10)

    Part.1 开篇 队名:彳艮彳亍团队 组长博客:戳我进入 作业博客:班级博客本次作业的链接 Part.2 成员汇报 组员1(组长)柯奇豪 过去两天完成了哪些任务 进一步优化代码,结合自己负责的部分修 ...

  6. 【牛客网71E】 组一组(差分约束,拆位)

    传送门 NowCoder Solution 考虑一下看到这种区间或与区间与的关系,拆一下位. 令\(s_i\)表示前缀和,则: 那么如果现在考虑到了第\(i\)为,有如下4种可能: \(opt=1\) ...

  7. 项目Alpha冲刺(团队3/10)

    项目Alpha冲刺(团队3/10) 团队名称: 云打印 作业要求: 项目Alpha冲刺(团队) 作业目标: 完成项目Alpha版本 团队队员 队员学号 队员姓名 个人博客地址 备注 221600412 ...

  8. Eclipse 中 SVN 插件的安装与使用

    下载和安装SVN插件 插件在线安装 可以选择在线安装插件的方式,就是使用eclipse里Help菜单的“Install New Software”,通过输入SVN地址,直接下载安装到eclipse里. ...

  9. Shell-17--break-exit-continue-shift

    echo -n 表示不换行 break 会退出当前循环 break 2 ,可以指定退出几层循环 continue 退出当次循环

  10. 使用Qt开发绘制多个设备的流量曲线图(附带项目图)

    一.说明: 在实际项目中,主要是使用Qt开发CS程序,当然主要是客户端.公司项目中有这个需求是实时显示多个设备的流量曲线图,设备将流量信息发给服务端,服务端再将信息通过Socket发给Qt客户端,Qt ...