Angular的MVC和作用域

首先看看Angular的控制器。

<!DOCTYPE HTML>
<html ng-app>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>angular</title>
<script type="text/javascript" src="https://code.angularjs.org/1.3.8/angular.min.js"></script>
</head>
<body>
<div ng-controller='Aaa'>
   <p>{{name}}</p>
</div>
<div ng-controller='Bbb'>
   <p>{{name}}</p>
</div>
<script type="text/javascript">
   function Aaa($scope){
     $scope.name = 'hello AngularJs';
   };
   function Bbb($scope){
     $scope.name = 'Hi';
   };
</script>
</body>
</html>

在html元素上添加ng-app指令(初始化的指令,任何DOM元素都可以!),ng-app可以有属性值(ng-app="my-app")后续详解。

ng-controller就是模块下的控制器,$scope上的数据属于局部作用域,在视图上使用{{}}来渲染数据。

上面的例子简单了展示了一些数据,下面看看局部作用域和全局作用域。

<div ng-controller='Aaa'>
 <p>{{name}}</p>
 <p>{{age}}</p>
</div>
<div ng-controller='Bbb'>
 <p>{{name}}</p>
 <p>{{age}}</p>
</div>
<script type="text/javascript">
 function Aaa($scope,$rootScope){
 $scope.name = 'hello AngularJs';
 $scope.age = 10;
 $rootScope.age = 20;
 };
 function Bbb($scope){
 $scope.name = 'Hi';
 $scope.age = 10;
 };
</script>

$scope定义局部作用域,$rootScope定义全局作用域。

age得到10和10,如果将Aaa里面的$scope.age = 10;注释掉,可得到20和10。

局部属性,会优先查找,如果在模块同时存在该属性,会优先查找局部。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持我们!

(0)

相关推荐

  • AngularJs学习第五篇从Controller控制器谈谈$scope作用域

    Controller的创建 AngularJs controller使用无处不在,在里代码演示比较简单的创建工作. <!DOCTYPE html> <html xmlns="http://www.w.org//xhtml" ng-app="exampleApp"> <head> <meta http-equiv="Content-Type" content="text/html; charset

  • 浅谈angularJS 作用域

    <!doctype html> <html ng-app="firstApp"> <head> <meta charset="utf-8"> <script src="angular-1.3.0.js"></script> </head> <body> <div ng-controller="parentCtrl"> &

  • 详解JavaScript的AngularJS框架中的作用域与数据绑定

    AngularJS 简介 AngularJS 是由 Google 发起的一款开源的前端 MVC 脚本框架,既适合做普通 WEB 应用也可以做 SPA(单页面应用,所有的用户操作都在一个页面中完成).与同为 MVC 框架的 Dojo 的定位不同,AngularJS 在功能上更加轻量,而相比于 jQuery,AngularJS 又帮您省去了许多机械的绑定工作.在一些对开发速度要求高,功能模块不需要太丰富的非企业级 WEB 应用上,AngularJS 是一个非常好的选择.AngularJS 最为复杂同

  • 解决angular的post请求后SpringMVC后台接收不到参数值问题的方法

    这是我后台SpringMVC控制器接收isform参数的方法,只是简单的打出它的值: @RequestMapping(method = RequestMethod.POST) @ResponseBody public Map<String, Object> save( @RequestParam(value = "isform", required = false) String isform) { System.out.println("isform value

  • 详解AngularJS中的作用域

    范围扮演其视图连接控制器的角色一个特殊的JavaScript对象.范围包含了模型数据.在控制器,模型数据通过$scope对象访问. <script> var mainApp = angular.module("mainApp", []); mainApp.controller("shapeController", function($scope) { $scope.message = "In shape controller"; $s

  • Angularjs全局变量被作用域监听的正确姿势

    如果你只想知道结论: $scope.$watch($rootScope.xxx,function(newVal,oldVal){ //do something }) 马上就有人问为什么不是: $rootScope.$watch("xxx",function(newVal,oldVal){ //do something }) 从我最近的一个bug来说说为什么要用第一种方式. 逻辑如图,一开始我使用了 $rootScope.$watch 的写法.因为 angularjs 在 $rootSc

  • 学习Angular中作用域需要注意的坑

    Angular作用域 在用angular搭建的网页应用中,作用域(scope)这个概念是贯穿其中的.在angular的视图(view)中的很多指令是会创建一个作用域的,例如 ng-app , ng-controller 等.这个作用域就是我们在写控制器构造函数时注入的 $scope (angular1.2之前的版本),他是视图模型(view model)中的一个概念.我们的数据模型(model)就是定义在作用域中的. Angular作用域的坑 用过angular的人应该都会经过一个过程,就是刚开

  • AngularJS学习笔记之TodoMVC的分析

    最近一段时间一直在看AngularJS,趁着一点时间总结一下. 官网地址:http://angularjs.org/ 先推荐几个教程 1. AngularJS入门教程 比较基础,是官方Tutorial的翻译. 2. 七步从AngularJS菜鸟到专家 也比较基础,制作了一个在线音乐播放网站. 3. AngularJS开发指南 这个教程比较全面,但我感觉翻译的有些晦涩难懂. 看过这些教程后,觉得AngularJS也懂一点了,就想用它干点事,就分析一下AngularJS写的todomvc吧. Tod

  • AngularJS教程之MVC体系结构详解

    模型 - 视图 - 控制器或MVC,MVC是普遍的叫法,是一种软件设计模式,用于开发Web应用程序.模型- 视图 - 控制器模式是由以下三部分组成: 模型/Model - 一个负责维护数据模式的最低水平. 视图/View - 负责显示所有或数据到用户的部分. 控制器/Controller - 软件代码控制Model和View之间的相互作用. MVC是受欢迎的,因为它隔离了应用逻辑从用户界面层和支持的关注点分离.这里的控制器接收用于该应用程序的所有请求,制备视图所需要的任何数据.视图,使用制备的控

  • 详细谈谈AngularJS的子级作用域问题

    前言 AngularJS自带指令目前有ng-include.ng-view.ng-switch.ng-repeat.这样的原因是因为,这些指令虽然是AngularJS内部定义的,但是也是和directive实现的方法都是一样的,其内部使用的是scope:true的方式,子作用域继承了父级的作用,并且构建了一个独立的子作用域,所有双向绑定实现不了,只能单独实现子级作用域继承父级的属性. AngularJS的继承是通过javascript的原型继承方式实现的,进行原型继承即意味着父作用域在子作用域的

随机推荐