AngularJS中的父作用域与自作用域

  • 对于$scope上的原生类型,如$scope.name="";
    • 自作用域获取变量时,会查找作用域本身,找不到就会查找父作用域
    • 修改时,若本作用域不存在,就会在本作用域创建一个变量,而不会向上查找并修改父作用域的变量
  • 对于$scope上的对象,如$scope.name={};
    • 自作用域获取变量时,会查找作用域本身,找不到就会查找父作用域
    • 修改时,若本作用域不存在,会向上查找并修改父作用域的变量
 1 <!DOCTYPE html>
 2 <html >
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8 <div ng-app="myApp">
 9     <div ng-controller="ParentController">
10         {{name}}
11         <br />
12         {{name1.value}}
13         <div ng-controller="ChildController">
14             {{name}}
15             <br />
16             {{name1.value}}
17         </div>
18     </div>
19 </div>
20 <script src="../angular-1.5.8/angular.js"></script>
21 <script>
22     var app = angular.module(‘myApp‘,[]);
23     app.controller(‘ParentController‘,function($scope){
24         $scope.name = "1";
25         $scope.name1={};
26         $scope.name1.value="2";
27     });
28     app.controller(‘ChildController‘,function($scope){
29         //$scope.name = "3";
30         //$scope.name1.value="4";
31     });
32
33 </script>
34 </body>
35 </html>
时间: 2024-10-15 04:12:49

AngularJS中的父作用域与自作用域的相关文章

AngularJS中的控制器和作用域

欢迎大家指导与讨论 : ) 一. 作用域的事件传播 一 . 1 修改的传播   关于作用域最重要的一点是修改会通过事件传播下去,自动更新所以依赖的数据值,即使是通过行为产生的.简而言之,就是即时您只修改了某个作用域中的某个属性(比如说$scope.data),那么依赖于$scope.data的一些行为(参数含有$scope.data的一些函数),都会重新执行计算.比如下面的这个例子,每当 <input> 被输入不同的对象, getCountry(city) 就会再次计算. <input

Angularjs(十二):独立作用域

本篇将会总结下面的内容: 1 为何需要独立作用域 2 如何实现独立作用域 3 作用域的数据绑定 之前有一些错误,是由于replace拼写错误导致的. 拼写正确后,网友发现报错,无法正常工作.这是因为模板中存在单标签<br>,导致模板无法正确解析~ 再次感谢博友们提出的错误! 独立作用域的作用 为了便于理解,先看一下下面这个例子: <!doctype html> <html ng-app="myApp"> <head> <meta h

AngularJS自学之路(二)——模块和作用域

模块 使用模块带来的好处 1. 保持全局命名空间的清洁: 2. 编写测试代码更容易,并能保持其清洁,以便更容易找到互相隔离的功能: 3. 易于在不同应用间复用代码: 4. 使应用能够以任意顺序加载代码的各个部分. AngularJS允许我们使用angular.module()方法来声明模块,这个方法能够接受两个参数, 第一个是模块的名称,第二个是依赖列表,也就是可以被注入到模块中的对象列表. //这个方法相当于AngularJS模块的setter方法,是用来定义模块的. angular.modu

AngularJs中,如何在父元素中调用子元素为自定义Directive中定义的函数?

最近一段时间准备使用AngularJs中的自定义Directive重构一下代码. 在这里说明一下,把自定义控件封装成Directive并不一定是要复用,而是要让代码结构更加清晰.就好像你将一个长方法拆分成多个独立的小方法,也未必要复用它们一样.职责独立等一票好处,会让后期维护更加轻松. 在重构的过程中,我遇到了这样一个问题,先上图: 图一: 这就是我要重构的界面,由于之前时间紧,将这三个Filter和两个button都写在了一个页面中.当时我已经预感到,如果将这里面的状态都写到一个scope上,

Java中的变量与变量的作用域

关于Java中的变量及变量的作用域 关于Java中的变量及变量的作用域 0. 变量的概念 在程序运行期间,系统可以为程序分配一块内存单元,用来存储各种类型的数据.系统分配的内存单元要使用一个标记符来标识,这种内存单元中的数据是可以更改的.所有叫变量.定义变量的标记符就是变量名,内存单元中所装载的数据就是变量值.用一个变量定义一块内存以后,程序就可以用变量名代表这块内存中的数据.根据所存储数据类型的不同,有各种不同类型的变量. 1. Java的变量类型 2. 注意变量的有效取值范围 系统为不同的变

js中变量含(参数、数组)作用域传递问题

js没有块级作用域(你可以自己闭包或其他方法实现),只有函数级作用域和全局作用域,函数外面的变量函数里面可以找到使用,函数里面的变量外面无法访问到. 写这个是因为ES6中的一个例子开始的.首先看下例子 var a = []; for (var i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 10 var a = []; for (let i = 0; i < 10; i++) { a[i] =

JavaScript中的变量、参数、作用域和作用域链

基本类型和引用类型 在JavaScript中有两种数据类型值.基本类型值和引用类型值.基本类型值指的是简单的数据段,而引用类型值指的是可能由多个值构成的对象.在JavaScript中有5种基本数据类型,分别是:Undefined.Null.Boolean.Number.String(这个和其他编程语言不一样,需要注意).基本数据类型是按值进行访问的,一般都存储在栈中.而引用类型的值都保存在内存堆上面,在内存栈上保存一个对它的引用(这个和C#,Java等编程语言存储对象的方式类似).在JavaSc

C语言中关键词static的用法与作用域

一.面向过程设计中的static 转载:http://blog.csdn.net/celerylxq/article/details/6160499 1.静态全局变量 在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量.我们先举一个静态全局变量的例子,如下: //Example 1#include <iostream.h>void fn();static int n; //定义静态全局变量void main()void fn() 静态全局变量有以下特点: 该变量在全局数据

Angularjs中的事件广播-浅谈$broadcast,$emit,$on

Angularjs中不同作用域之间可以通过组合使用$broadcast,$emit,$on的事件广播机制来进行通信 介绍: $broadcast的作用是将事件从父级作用域传播至子级作用域,包括自己.格式如下:$broadcast(eventName,args) $emit的作用是将事件从子级作用域传播至父级作用域,包括自己,直至根作用域.格式如下:$emit(eventName,args) $on用于在作用域中监控从子级或父级作用域中传播的事件以及相应的数据.格式如下:$on(event,dat