详解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 相关文章推荐
select标记美化--JS式插件、后期加载
Apr 01 Javascript
一个JS的日期格式化算法示例
Jul 31 Javascript
jQuery实现左右切换焦点图
Apr 03 Javascript
使用AngularJS创建单页应用的编程指引
Jun 19 Javascript
在Node.js中使用HTTP上传文件的方法
Jun 23 Javascript
如何判断Javascript对象是否存在的简单实例
May 18 Javascript
数组Array的排序sort方法
Feb 17 Javascript
解决Jquery下拉框数据动态获取的问题
Jan 25 jQuery
layDate插件设置开始和结束时间
Nov 15 Javascript
Layui弹出层 加载 做编辑页面的方法
Sep 16 Javascript
jQuery 选择器用法实例分析【prev + next】
May 22 jQuery
解决基于 keep-alive 的后台多级路由缓存问题
Dec 23 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 Opcache安装和配置方法介绍
2015/05/28 PHP
ThinkPHP的SAE开发相关注意事项详解
2016/10/09 PHP
[推荐]javascript 面向对象技术基础教程
2009/03/03 Javascript
qTip2 精致的基于jQuery提示信息插件
2012/02/17 Javascript
原生javascript兼容性测试实例
2013/07/01 Javascript
node.js入门教程
2014/06/01 Javascript
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
jQuery实现放大镜效果实例代码
2016/03/17 Javascript
原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法
2016/08/05 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
2016/09/09 Javascript
BootStrap轻松实现微信页面开发代码分享
2016/10/21 Javascript
原生js和css实现图片轮播效果
2017/02/07 Javascript
bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法
2017/03/08 Javascript
浅析Vue下的components模板使用及应用
2019/11/27 Javascript
node使用async_hooks模块进行请求追踪
2021/01/28 Javascript
[01:10:24]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第一场 2月28日
2021/03/11 DOTA
浅谈python中的面向对象和类的基本语法
2016/06/13 Python
Python实现朴素贝叶斯分类器的方法详解
2018/07/04 Python
python循环定时中断执行某一段程序的实例
2019/06/29 Python
使用Python的turtle模块画国旗
2019/09/24 Python
Python 私有化操作实例分析
2019/11/21 Python
使用pickle存储数据dump 和 load实例讲解
2019/12/30 Python
pytorch程序异常后删除占用的显存操作
2020/01/13 Python
pytorch 常用线性函数详解
2020/01/15 Python
Django配置跨域并开发测试接口
2020/11/04 Python
记一次python 爬虫爬取深圳租房信息的过程及遇到的问题
2020/11/24 Python
Html5新特性用canvas标签画多条直线附效果截图
2014/06/30 HTML / CSS
英国银首饰公司:e&e Jewellery
2021/02/11 全球购物
中间件的定义
2016/08/09 面试题
领导干部考察材料
2014/02/08 职场文书
春节联欢会主持词
2014/03/24 职场文书
飞屋环游记观后感
2015/06/08 职场文书
安全生产培训心得体会
2016/01/18 职场文书
Mysql中存储引擎的区别及比较
2021/06/04 MySQL
Python 可迭代对象 iterable的具体使用
2021/08/07 Python
实现AJAX异步调用和局部刷新的基本步骤
2022/03/17 Javascript