详解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 相关文章推荐
document.body.scrollTop 值总为0的解决方法 比较常见的标准问题
Nov 30 Javascript
通过jQuery打造支持汉字,拼音,英文快速定位查询的超级select插件
Jun 18 Javascript
javascript 函数调用的对象和方法
Jul 01 Javascript
jquery toolbar与网页浮动工具条具体实现代码
Jan 12 Javascript
浅谈页面装载js及性能分析方法
Dec 09 Javascript
JS小数运算出现多为小数问题的解决方法
Jun 02 Javascript
Bootstrap CSS组件之按钮组(btn-group)
Dec 17 Javascript
基于JS实现移动端向左滑动出现删除按钮功能
Feb 22 Javascript
JavaScript实现图片切换效果
Aug 12 Javascript
JS设计模式之惰性模式(二)
Sep 29 Javascript
Webpack框架核心概念(知识点整理)
Dec 22 Javascript
JS调用安卓手机摄像头扫描二维码
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
怎样去阅读一份php源代码
2009/08/21 PHP
php生成xml简单实例代码
2009/12/16 PHP
php邮箱地址正则表达式验证
2015/11/13 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
2016/05/16 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
2016/09/22 PHP
php微信公众号开发(3)php实现简单微信文本通讯
2016/12/15 PHP
2017年最好用的9个php开发工具推荐(超好用)
2017/10/23 PHP
php ajax数据传输和响应方法
2018/08/21 PHP
Array, Array Constructor, for in loop, typeof, instanceOf
2011/09/13 Javascript
js控制输入框获得和失去焦点时状态显示的方法
2015/01/30 Javascript
浅谈Javascript的静态属性和原型属性
2015/05/07 Javascript
浅谈angularJS 作用域
2015/07/05 Javascript
JavaScript中三个等号和两个等号的区别(== 和 ===)浅析
2016/09/22 Javascript
Vue自定义图片懒加载指令v-lazyload详解
2020/12/31 Javascript
Vue 使用中的小技巧
2018/04/26 Javascript
详解angular2如何手动点击特定元素上的点击事件
2018/10/16 Javascript
在vue中使用G2图表的示例代码
2019/03/19 Javascript
Node.js API详解之 console模块用法详解
2020/05/12 Javascript
[05:42]DOTA2英雄梦之声_第10期_蝙蝠骑士
2014/06/21 DOTA
[03:56]DOTA2完美大师赛趣味视频之小鸽子和Mineski打台球
2017/11/24 DOTA
python实现通过shelve修改对象实例
2014/09/26 Python
python定时执行指定函数的方法
2015/05/27 Python
python安装教程 Pycharm安装详细教程
2017/05/02 Python
Python标准库inspect的具体使用方法
2017/12/06 Python
python OpenCV学习笔记实现二维直方图
2018/02/08 Python
python 计算平均平方误差(MSE)的实例
2019/06/29 Python
pybind11和numpy进行交互的方法
2019/07/04 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
python实现取余操作的简单实例
2020/08/16 Python
美国著名的家居用品购物网站:Bed Bath & Beyond
2018/01/05 全球购物
瑞典灯具和照明网上商店:Lamp24.se
2018/03/17 全球购物
汇智创新科技发展有限公司
2015/12/06 面试题
公司门卫岗位职责
2014/03/15 职场文书
小学生个人先进事迹材料
2014/05/08 职场文书
求职信:会计求职的写作技巧
2019/04/24 职场文书
SQL Server表分区删除详情
2021/10/16 SQL Server