<!doctype html> <html ng-app="myApp"> <head> <script src="http://cdn.bootcss.com/angular.js/1.3.12/angular.min.js"></script> <script src="http://cdn.bootcss.com/angular-i18n/1.2.15/angular-locale_zh-cn.js"></script></head> <body> <div ng-controller="SomeCtrl"> {{ someBareValue }} <button ng-click="someAction()">Communicate to child</button> <div ng-controller="ChildCtrl"> {{ someBareValue }} <button ng-click="childAction()">Communicate to parent</button> </div> </div> <script> angular.module('myApp', []) .controller('SomeCtrl', function($scope) { // anti-pattern, bare value $scope.someBareValue = 'hello computer'; // set actions on $scope itself, this is okay $scope.someAction = function() { $scope.someBareValue = 'hello human, from parent'+Math.random(); }; }) .controller('ChildCtrl', function($scope) { $scope.childAction = function() { $scope.someBareValue = 'hello human, from child'; }; }); </script> </body> </html>
这个例子的变量。这个例子中,在已有的 控制器中嵌套了第二个控制器,并且没有设置模型对象的属性。
由于原型继承的关系,修改父级对象中的someBareValue会同时修改子对象中的值,但反之则不行。可以看下这个例子的实际效果,首先点击child button,然后点击parent button。这个例子充分说明了子控制器是复制而非引用someBareValue。
运行一下,即可看出效果。自己整理笔记,搜到的,给你参考。
相关推荐
但是要注意,过度依赖控制器继承可能导致作用域的复杂性增加,因此在实际开发中,应适度使用,并结合其他设计模式,如服务(Services)和指令(Directives),以创建更健壮和可扩展的应用程序。
AngularJS是一款前端JavaScript框架,它由Google维护,并且以MVC(模型-视图-控制器)的设计理念为基础,主要用于开发动态网页应用。在AngularJS中,控制器(controller)是用来管理视图状态和行为的函数,与传统的...
1. **作用域继承**:指令和与其关联的控制器共享相同的$scope,允许它们之间进行数据和方法的通信。 2. **自定义属性**:通过在指令上添加自定义属性,我们可以指定调用哪个控制器的方法。 3. **`scope.$eval`**:`$...
首先,AngularJS是基于MVC(模型-视图-控制器)架构的JavaScript框架,由Google维护。它通过双向数据绑定、依赖注入、指令系统、过滤器、服务等核心概念,实现了快速开发动态网页应用的能力。在构建自定义框架的过程...
6. **控制器**:在AngularJS中,控制器是与视图交互的主要部分,用于处理用户输入和更新模型数据。 7. **表达式**:AngularJS 使用{{ }}包裹的表达式将JavaScript表达式插入到HTML中,动态渲染视图。 8. **过滤器*...
Scope对象是AngularJS应用程序中的关键组件,它作为控制器和视图之间的桥梁。每个AngularJS应用程序都有一个根Scope,它是所有其他Scopes的父级。Scope对象可以被扩展或继承,从而创建出一个层次结构。 - **属性和...
作用域构成了控制器与视图之间的桥梁,控制器的作用域可以影响其视图,反之亦然。作用域的创建、继承和销毁是构建AngularJS应用的基础。学习作用域的工作机制,包括如何通过$watch和$digest循环进行数据追踪、脏值...
6. **路由服务**:AngularJS 1.2的路由功能使得在SPA中导航变得简单,通过配置URL映射到特定的视图和控制器,实现页面间的平滑切换。 7. **$http服务**:用于处理HTTP请求,1.2版本在错误处理和响应处理上做了优化...
本文将深入探讨两种主要的AngularJS控制器间通信方式:使用服务和基于事件广播的方式。 首先,我们来看**基于服务的方式**。在AngularJS中,服务是一个单例对象,这意味着无论何时通过依赖注入创建服务,都会返回...
本文将探讨AngularJS中控制器之间的通信方法,并结合实例进行详细分析,主要包括以下几种方式:基于scope的继承、基于事件的传播、以及使用service(单例模式)来实现控制器间的通信。 首先,基于scope的继承是最...
4. 模块:模块是组织AngularJS应用的基本单位,可以包含控制器、服务、指令等组件。 5. 控制器:控制器是应用逻辑的主要载体,用于处理用户输入和业务逻辑。 6. 过滤器:过滤器用于格式化数据,如日期格式化、货币...
以上内容概述了AngularJS的一些核心概念,包括ng-src和ng-href属性的使用、表达式的执行机制、控制器的职责、数据模型的暴露和监控,以及双向数据绑定。AngularJS不仅提供了丰富的指令和数据绑定功能,还允许开发者...
隔离作用域是AngularJS中一个强大的特性,它允许我们在指令中创建独立的作用域,不直接继承父级控制器的 `$scope`。这样可以防止指令与全局作用域的冲突,提高代码的可重用性和封装性。隔离作用域通过`&`, `@`, `=`...
2. **ControllerAs语法**:为了更好地遵循面向对象编程的原则,1.4版本推荐使用`controllerAs`语法,将控制器实例绑定到视图的特定作用域变量,使得代码更加清晰和易于理解。 3. **$http服务增强**:$http服务在1.4...
这种继承机制有助于在控制器之间共享数据和行为。在AngularJS中,作用域的层次结构与HTML元素的层次结构大致相同,这样可以在不同的作用域层次中实现视图的动态更新。 创建作用域的方式多种多样,ng-app指令可以...
每个控制器(Controller)都有一个关联的作用域,而这些作用域可以有子作用域。当创建一个新的控制器时,会默认创建一个新的作用域,它成为父作用域的子作用域。这种层级关系使得数据可以在不同层级之间共享和传递。...
7. **注入服务**:AngularJS允许你通过依赖注入(Dependency Injection,DI)机制,将一个控制器中的服务暴露给另一个控制器。这种方式确保了数据和功能的隔离,提高了代码的可测试性。 8. **AngularJS事件系统**:...
**AngularJS基本概念...以上内容仅是AngularJS基础知识的概览,实际使用中还需要深入学习依赖注入、过滤器、服务、工厂、控制器等更多概念。在AngularJS pdf资料中,你将找到更详细的信息,帮助你全面掌握这个框架。
在AngularJS中,这通常需要操作两个不同的作用域:一个是用于显示消息的控制器作用域,另一个是用于显示未读消息计数的指令作用域。 在文章中提到的问题场景下,初始的实现方法是将未读消息计数存储在缓存中。每次...