当前位置: 首页 > 编程笔记 >

AnjularJS中$scope和$rootScope的区别小结

左丘繁
2023-03-14
本文向大家介绍AnjularJS中$scope和$rootScope的区别小结,包括了AnjularJS中$scope和$rootScope的区别小结的使用技巧和注意事项,需要的朋友参考一下

一句话总结:

     $rootScope针对全局的作用域生效

     $scope只针对当前的controller作用域生效

用下面的例子来证明上述的说法:

定义一个模块名为myApp

var myApp = angular.module('myApp', []);

创建oneController和twoController这两个controller

oneController传入$scope和$rootScope

myApp.controller('oneController', ['$scope', '$rootScope', function ($scope, $rootScope) {
 // 局部的变量,只有在oneController中才会显示
 $scope.one_language = 'Python';

 // 全局的变量,都可以调用
 $rootScope.language = 'Go';
}]);

twoController只传入$scope

myApp.controller('twoController', ['$scope', function ($scope) {
 // 局部的变量,只有在twoController中才会显示
 $scope.two_language = 'Java';
}]);

HTML标签内容

<span ng-app="myApp">
  <style>
    div{margin-top: 15px;border: 2px solid rebeccapurple;width: 400px;}
  </style>
  <div>
    <h3>我是全局变量language: {{ language}}</h3>
  </div>
  <div ng-controller="oneController">
    <h3>我是one_language局部变量: {{ one_language}}</h3>
  </div>
  <div ng-controller="twoController">
    <h1>twoController</h1>
    <h3>我是two_language局部变量: {{ two_language }}</h3>
    <h3>我是one_language局部变量: {{ one_language}}</h3>
    <h3>我是全局变量language: {{ language }}</h3>
  </div>
</span>

显示的结果

总结

以上就是这篇文章的全部内容,请仔细看看上面的代码,这有助于你理解。如果有疑问大家可以留言交流,谢谢大家对小牛知识库的支持。

 类似资料:
  • 问题内容: 我在控制器中看到$ scope有$ root,这是什么?与可以注入控制器的$ rootScope有何不同? 问题答案: var指向所有作用域的父级,可以在任何地方注入。所有其他范围是的子级。它们是通过的方法创建的,因此每个范围都继承自。 在构造函数 的定义中的角度源中有一行: 似乎var只是创建的第一个作用域- 的占位符。 接下来是这段代码在方法: 因此,每个作用域子对象的var 都是

  • 问题内容: 现在,之间的性能差异和已被淘汰,没有任何理由,更喜欢到? 他们是不同的,是的。 仅限于范围层次结构(向上)-如果它适合您的设计,这可能很好,但是在我看来,这是一个相当随意的限制。 在所有 选择 收听此活动的人中都有效,这在我看来是一个更为明智的限制。 我想念什么吗? 编辑: 为了对回答做出澄清,调度的方向不是我要解决的问题。向上调度事件,-向下调度事件。但是,为什么不总是使用它来覆盖所

  • 问题内容: 有人可以帮我了解应使用和的方式。 我知道它主要是用于听取不同的作用域($ rootScope和$ scope)。 我的查询适用于以下情况: 我应该使用: $ rootScope。$ emit 与 $ rootScope。$ on 要么 我应该选择: $ rootScope。$ with $ scope。$ on 广播 。 我知道这不是一个好选择,因为它将广播给所有obj。 要么 我应该

  • 本文向大家介绍git和SVN的区别小结,包括了git和SVN的区别小结的使用技巧和注意事项,需要的朋友参考一下 GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征。所以,这篇文章的主要目的就是通过介绍GIT能做什么、它和SVN在深层次上究竟有什么不同来帮助你认识它。 一. GIT

  • 本文向大家介绍Java中==与equals的区别小结,包括了Java中==与equals的区别小结的使用技巧和注意事项,需要的朋友参考一下 s2==s3的运算结果为:false  s1==s3的运算结果为:true  s2.equals(s3)的运算结果为:true  总结: == 与 equals()比较的内容是不同的,equals()方式是String类中的方法,它用于比较两个对象引用所指的内