详解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 相关文章推荐
js编码之encodeURIComponent使用介绍(asp,php)
Mar 01 Javascript
JavaScript异步回调的Promise模式封装实例
Jun 07 Javascript
js事件绑定快捷键以ctrl+k为例
Sep 30 Javascript
根据配置文件加载js依赖模块
Dec 29 Javascript
JS访问DOM节点方法详解
Nov 29 Javascript
浅谈Vue SSR 的 Cookies 问题
Nov 20 Javascript
基于vue2.0实现简单轮播图
Nov 27 Javascript
Vue 页面跳转不用router-link的实现代码
Apr 12 Javascript
vue-cli项目中使用echarts图表实例
Oct 22 Javascript
深入浅析Node.js 事件循环、定时器和process.nextTick()
Oct 22 Javascript
vue响应式系统之observe、watcher、dep的源码解析
Apr 09 Javascript
vue如何自动化打包测试环境和正式环境的dist/test文件
Jun 06 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
PHP的FTP学习(四)
2006/10/09 PHP
PhpMyAdmin中无法导入sql文件的解决办法
2010/01/08 PHP
php从文件夹随机读取文件的方法
2015/06/01 PHP
jQuery使用手册之一
2007/03/24 Javascript
小议javascript 设计模式 推荐
2009/10/28 Javascript
javascript 函数使用说明
2010/04/07 Javascript
jquery load()在firefox(火狐)下显示不正常的解决方法
2011/04/05 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
深入理解jQuery之防止冒泡事件
2016/05/24 Javascript
JavaScrpt判断一个数是否是质数的实例代码
2017/06/11 Javascript
angular ng-click防止重复提交实例
2017/06/16 Javascript
js学习总结之DOM2兼容处理重复问题的解决方法
2017/07/27 Javascript
为输入框加入数字js校验代码分享
2017/11/02 Javascript
vue的mixins属性详解
2018/03/14 Javascript
Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
2018/09/12 Javascript
koa大型web项目中使用路由装饰器的方法示例
2019/04/02 Javascript
小程序异步问题之多个网络请求依次执行并依次收集请求结果
2019/05/05 Javascript
Python中设置变量作为默认值时容易遇到的错误
2015/04/03 Python
Python将多个excel表格合并为一个表格
2021/02/22 Python
spark: RDD与DataFrame之间的相互转换方法
2018/06/07 Python
python中字符串内置函数的用法总结
2018/09/13 Python
情人节快乐! python绘制漂亮玫瑰
2020/08/18 Python
python交互界面的退出方法
2019/02/16 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
2019/10/23 Python
keras 如何保存最佳的训练模型
2020/05/25 Python
Nordgreen台湾官网:极简北欧设计手表
2019/08/21 全球购物
庆八一活动方案
2014/01/25 职场文书
空乘英文求职信
2014/04/13 职场文书
助人为乐好少年事迹材料
2014/08/18 职场文书
个人授权委托书范本格式
2014/10/12 职场文书
群众路线教育实践活动方案
2014/10/31 职场文书
爱心捐助活动总结
2015/05/09 职场文书
小学生运动会广播
2015/08/19 职场文书
使用python向MongoDB插入时间字段的操作
2021/05/18 Python
Sql Server 行数据的某列值想作为字段列显示的方法
2022/04/20 SQL Server
安装harbor作为docker镜像仓库的问题
2022/06/14 Servers