详解AngularJS中的作用域


Posted in Javascript onJune 17, 2015

 范围扮演其视图连接控制器的角色一个特殊的JavaScript对象。范围包含了模型数据。在控制器,模型数据通过$scope对象访问。

<script>
   var mainApp = angular.module("mainApp", []);

   mainApp.controller("shapeController", function($scope) {
     $scope.message = "In shape controller";
     $scope.type = "Shape";
   });
</script>

以下是在上面的例子中需要考虑的重要问题。

  •     $scope被作为第一个参数在其构造器确定指标到控制器。
  •     $scope.message 和 $scope.type 是它们在HTML页面中所用的模型。
  •     我们已经设置模型的值将反映应用程序模块的控制器shapeController中。
  •     我们可以在$scope定义函数功能。

继承范围

范围是特定的控制器。如果我们定义嵌套的控制器,然后控制器子将继承其父控制的范围。

<script>
   var mainApp = angular.module("mainApp", []);

   mainApp.controller("shapeController", function($scope) {
     $scope.message = "In shape controller";
     $scope.type = "Shape";
   });
  
   mainApp.controller("circleController", function($scope) {
     $scope.message = "In circle controller";  
   });
</script>

以下是在上面的例子中需要考虑的重要问题。

  •     我们在shapeController设定模型的值。
  •     我们覆盖的子控制器circleController消息。当“消息”内的控制器circleController的模块使用时,将用于重写的消息。

例子

下面的例子将展示上述所有指令。
testAngularJS.html

<html>
<head>
  <title>Angular JS Forms</title>
</head>
<body>
  <h2>AngularJS Sample Application</h2>
  <div ng-app="mainApp" ng-controller="shapeController">
   <p>{{message}} <br/> {{type}} </p>
   <div ng-controller="circleController">
     <p>{{message}} <br/> {{type}} </p>
   </div>
   <div ng-controller="squareController">
     <p>{{message}} <br/> {{type}} </p>
   </div>
  </div>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script>
  <script>
   var mainApp = angular.module("mainApp", []);

   mainApp.controller("shapeController", function($scope) {
     $scope.message = "In shape controller";
     $scope.type = "Shape";
   });

   mainApp.controller("circleController", function($scope) {
     $scope.message = "In circle controller";  
   });

   mainApp.controller("squareController", function($scope) {
     $scope.message = "In square controller";
     $scope.type = "Square";
   });

  </script>
</body>
</html>

结果

在Web浏览器打开textAngularJS.html。看到结果如下。

详解AngularJS中的作用域

Javascript 相关文章推荐
用javascript实现给出的盒子的序列是否可连为一矩型
Aug 30 Javascript
javascript中length属性的探索
Jul 31 Javascript
使用console进行性能测试
Apr 27 Javascript
javascript实现10个球随机运动、碰撞实例详解
Jul 08 Javascript
基于Jquery制作图片文字排版预览效果附源码下载
Nov 18 Javascript
JS实现全屏的四种写法
Dec 30 Javascript
jQuery Ajax使用FormData上传文件和其他数据后端web.py获取
Jun 11 jQuery
深究AngularJS如何获取input的焦点(自定义指令)
Jun 12 Javascript
vue判断input输入内容全是空格的方法
Mar 02 Javascript
vue中axios解决跨域问题和拦截器的使用方法
Mar 07 Javascript
微信小程序登录按钮遮罩浮层效果的实现方法
Dec 16 Javascript
Weex开发之地图篇的具体使用
Oct 16 Javascript
简介AngularJS中使用factory和service的方法
Jun 17 #Javascript
简介AngularJS的视图功能应用
Jun 17 #Javascript
在AngularJS中使用AJAX的方法
Jun 17 #Javascript
使用AngularJS来实现HTML页面嵌套的方法
Jun 17 #Javascript
AngularJS的表单使用详解
Jun 17 #Javascript
举例讲解AngularJS中的模块
Jun 17 #Javascript
简介AngularJS的HTML DOM支持情况
Jun 17 #Javascript
You might like
短波收音机简介
2021/03/01 无线电
PHP的面试题集
2006/11/19 PHP
在WordPress中使用wp_count_posts函数来统计文章数量
2016/01/05 PHP
PHP安装BCMath扩展的方法
2019/02/13 PHP
javascript 数组排序函数
2009/08/20 Javascript
原生javascript实现图片轮播效果代码
2010/09/03 Javascript
使用Jquery来实现可以输入值的下拉选单 雏型
2011/12/06 Javascript
jQuery 遍历-nextUntil()方法以及prevUntil()方法的使用介绍
2013/04/26 Javascript
javascript常见用法总结
2014/05/22 Javascript
JS实现图片无间断滚动代码汇总
2014/07/30 Javascript
JavaScript中的Math.atan2()方法使用详解
2015/06/15 Javascript
jquery实现表单验证简单实例演示
2015/11/23 Javascript
JavaScript知识点总结(十)之this关键字
2016/05/31 Javascript
微信小程序 富文本转文本实例详解
2016/10/24 Javascript
canvas绘制环形进度条
2017/02/23 Javascript
vue-cli 使用vue-bus来全局控制的实例讲解
2018/09/15 Javascript
Vue快速实现通用表单验证功能
2019/12/05 Javascript
Node.js 在本地生成日志文件的方法
2020/02/07 Javascript
Vue快速实现通用表单验证的方法
2020/02/24 Javascript
js实现简单放大镜效果
2020/03/07 Javascript
ElementUI 修改默认样式的几种办法(小结)
2020/07/29 Javascript
[00:31]2016完美“圣”典风云人物:国士无双宣传片
2016/12/04 DOTA
[00:32]2018DOTA2亚洲邀请赛Newbee出场
2018/04/03 DOTA
基于Python 装饰器装饰类中的方法实例
2018/04/21 Python
Django contenttypes 框架详解(小结)
2018/08/13 Python
python3.x提取中文的正则表达式示例代码
2019/07/23 Python
Python中print函数简单使用总结
2019/08/05 Python
python爬虫可以爬什么
2020/06/16 Python
Django执行源生mysql语句实现过程解析
2020/11/12 Python
[原创]赚疯了!转手立赚800+?大佬的python「抢茅台脚本」使用教程
2021/01/12 Python
有关HTML5 Video对象的ontimeupdate事件(Chrome上无效)的问题
2013/07/19 HTML / CSS
教师工作表现自我评价
2015/03/05 职场文书
幼儿园中班教学反思
2016/03/03 职场文书
nginx 反向代理之 proxy_pass的实现
2021/03/31 Servers
Pytorch中Softmax和LogSoftmax的使用详解
2021/06/05 Python
阿里云日志过滤器配置日志服务
2022/04/09 Servers