问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

angular中$scope和$rootscope有什么区别

发布网友 发布时间:2022-05-14 21:12

我来回答

3个回答

懂视网 时间:2022-05-15 01:33

本篇文章主要介绍了详解angularjs 学习之 scope作用域,现在分享给大家,也给大家做个参考。

简介

Scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带。

Scope 是一个存储应用数据模型的对象,有可用的方法和属性。

Scope 可应用在视图和控制器上。

作用域是Web应用的控制器和视图之间的粘结剂:

控制器 --> 作用域 --> 视图(DOM)
指令 --> 作用域 --> 视图(DOM)

当你在 AngularJS 创建控制器时,你可以将 $scope 对象当作一个参数传递:

<p ng-controller="myCtrl">
<h1>{{name}}</h1>
</p>

<script>
var app = angular.module('test', []);
app.controller('myCtrl', function($scope) {
 $scope.name = "天下行走";
});
</script>

输出结果: 天下行走

控制器中创建一个属性名 "name" ,对应了视图中使用 {{ }} 中的名称。

当在控制器中添加 $scope 对象时,视图 (HTML) 可以获取了这些属性。

视图中,你不需要添加 $scope 前缀, 只需要添加属性名即可,如: {{name}} 。

AngularJS 应用组成如下:

View(视图) , 即 HTML。

Model(模型) , 当前视图中可用的数据。

Controller(控制器) , 即 JavaScript 函数,可以添加或修改属性。

scope 是一个 JavaScript 对象,带有 属性 和 方法 ,这些属性和方法可以在视图和控制器中使用。

再来看个例子:

<p ng-app="myApp" ng-controller="myCtrl">
 输入你的名字:
 <input ng-model="name">
 <h1>{{greeting}}</h1>
 <button ng-click='sayHello()'>greet</button> 
</p>

<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
 $scope.name = "张三";
 $scope.sayHello = function() {
 $scope.greeting = $scope.name + '是个笨蛋!';
 };
});
</script>

在这个例子中,

  1. 控制器: MyCtrl ,它引用了 $scope 并在其上注册了两个属性和一个方法

  2. $scope 对象:持有上面例子所需的数据模型,包括 name 属性、 greeting 属性 (注:这是在 sayHello() 方法被调用时注册的) 和 sayHello() 方法

  3. 视图:拥有一个输入框、一个按钮以及一个利用双向绑定来显示数据的内容块

那么具体整个示例有这样两个流程,从控制器发起的角度来看就是:

1、控制器往作用域中写属性:

给作用域中的 name 赋值,然后作用域通知视图中的 input 数据变化了, input 因为通过 ng-model 实现了双向绑定可以知道 name 的变化,进而在视图中渲染出改变的值

2、控制器往作用域中写方法

给作用域中的 sayHello() 方法赋值,该方法被视图中的 button 调用,因为 button 通过 ng-click 绑定了该方法,当用户点击按钮时, sayHello() 被调用,这个方法读取作用域中的 name 属性,加上后缀字符串,然后赋值给在作用域中新创建的 greeting 属性

整个示例的过程如果从视图的角度看,那主要是以下三个部分:

1、input 中的渲染逻辑:展示了通过 ng-model 进行的作用域和 视图中某表单元素的双向绑定

  1. 根据 ng-model 中的 name 去作用域中取,如果已经有值,那么用这个默认值填充当前的输入框

  2. 接受用户输入,并且将用户输入的字符串传给 name ,这时候作用域中的该属性值实时更新为用户输入的值

2、button 中的逻辑

接受用户单击,调用作用域中的 sayHello() 方法

3、{{greeting}} 的渲染逻辑

  1. 初始阶段 :在用户未单击按钮时,不显示内容

  2. 取值阶段 :在用户单击后,这个表达式会去 scope 中取 greeting 属性,而本例中这个作用域和控制器是同一个的,这时候,该作用域下 greeting 属性已经有了,这时候这个属性就被取回来了

  3. 计算阶段 :在当前作用域下去计算 greeting 表达式,然后渲染视图,显示 张三是个笨蛋!

经过以上的两种角度分析示例过程,我们可以知道: 作用域(scope) 对象以及其属性是视图渲染的唯一数据来源。

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

angularjs使用gulp-uglify压缩后执行报错的解决方法

Vue+ElementUI实现表单动态渲染、可视化配置的方法

浅谈webpack打包之后的文件过大的解决方法

实际解决iview打包时UglifyJs报错(详细教程)

在使用vue中打包项目后刷新碰到404的问题(详细教程)

热心网友 时间:2022-05-14 22:41

scope是angularJS中的作用域(其实就是存储数据的地方),很类似javascript的原型链 。搜索的时候,优先找自己的scope,如果没有找到就沿着作用域链向上搜索,直至到达根作用域rootScope。 $rootScope是由angularJS加载模块的时候自动创建的

热心网友 时间:2022-05-14 23:59

$rootScope和$scope的概念和关联关系
http://www.2cto.com/kf/201410/344611.html
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 你们谁知道为什么2月没30号,这是什么意思?我知道。 一年当中,中旬是指几月份?年初又是指几月份? 二月底之前不开学是什么意思? 电脑在修理店的时候有声音,为什么回来自己电脑上面就没声音了啊。 2月下甸是什么意思? ios微信给别人发送照片时有个所有相册,看到的和手机相册不一样,微信发送时的照片怎么删除? 手机微信把人拉黑再删除结果手机相册里的照片没了,这可能吗 安徽省二月底不得开学 ,二月底具体是什么意思? 微信清理中的专项清理中拍摄和保存的图片如果删除会把手机相册里的照片也删除? 上旬,中旬,下旬是什么意思? 手机照片删除但微信里还有,怎么删除微信里的从手机照片的图片 为什么微信里按一下照片和自己单独的相册里的照片不一样呢?怎样删除从微信里按的相册里的图片呢? 手机相册跟微信收藏的照片删了 电脑全拆重装后没有声音 怎么在网吧免费上网啊 拆洗了一下 电脑 装回去以后 就没声音了 怎么回事 怎么才能免费在网吧上网 怎么在网吧免费上网 吸顶灯外壳什么材质好 吸顶灯使用安装注意事项 吸顶灯有什么好处和坏处? 求助,三国志11水浒武将如何用? 三国志11威力加强版怎么添加那些水浒武将? 三国志11威力加强版里有水浒武将吗 三国志11威力加强版,水浒补丁安装了,怎么让武将在游戏中出现?有没有梁山这个城市的??? 五一期间去北京,行程方面你有哪些推荐? 五一假期北京旅游路线 2017年五一假期北京对外地车怎么限行 五一去北京旅游方案 在南昌,想和同学趁五一假期去北京玩三天,请帮忙安排! 目前准备去的景点:(请注明 五一去北京旅游 汽车美容需办理哪些法律责任保险 桂林斑马汽车美容服务有限责任公司怎么样? 新农合哪些药报销? 新农合可以报销哪些病 购房需知 什么情况下不适合提前还款? 哪些人不适合提前还贷?提前还贷要注意什么 对于提前还贷你真的了解吗?今天来聊聊它 房贷提前还款划算吗?3种情况不适合 华为手机在华为商城买的会不会买到假的哦 华为手机越来越假了,我买的华为手机才一个月,什么游戏都没下,内存才占百分之二十一,一天要卡十几次? 希捷新睿翼1T的硬盘怎么样 质量