当前位置: 首页 > 面试题库 >

scope:{}和scope:true内部指令之间有什么区别?

魏威
2023-03-14
问题内容

我找不到有关Angular.js的信息,并且我在工作时注意到这两个值的工作方式不同。有什么不同?

.directive('foo', function() {

  return {
    scope: true
  };
});

.directive('foo', function() {

  return {
    scope: {}
  };
});

问题答案:

两者scope: truescope:{}都会为指令创建一个子作用域。但,

scope:true将从原型继承属性(例如,该指令所在的控制器),而scope:{}不会从父属性继承,因此称为isolated

例如,假设我们有一个控制器c1和两个指令d1和d2,

app.controller('c1', function($scope){
  $scope.prop = "some value";
});

.directive('d1', function() {
  return {
    scope: true
  };
});

.directive('d2', function() {
  return {
    scope: {}
  };
});

<div ng-controller="c1">
  <d1><d1>
  <d2><d2>
</div>

d1(scope:true)将访问c1范围-> prop,因为d2与c1范围隔离。

注1: d1和d2都将为定义的每个指令创建一个新作用域。

注意2:
除了两者之间的区别外,对于scope:true-对新子作用域所做的任何更改都不会反映回父作用域。但是,由于新作用域是从父作用域继承的,因此对c1作用域(父作用域)所做的任何更改都将反映在指令作用域中。

提示:scope:{}isolated scope用于可重复使用的角度指令。这样您就不会弄乱父范围属性



 类似资料:
  • 我刚刚开始使用Angular 2。 我想知道Angular 2中的组件和指令有什么区别?

  • 问题内容: 我读了很多文档,并且越来越困惑。我基本上不知道 服务 指示 模组 我看到了很多自定义组件。有时他们使用指令,有时使用服务。它总是从模块开始。有人可以举例说明这三种类型之间的区别吗? 问题答案: 可以将模块视为连接其他许多事物的地方,例如指令,服务,常量等。可以将模块注入到其他模块中,从而使您可以高度重用。 编写有角度的应用程序时,您将拥有一个顶级模块,即您的应用程序代码(没有模板)。

  • 问题内容: 在此示例中: 无法编译为: 而被编译器接受。 这个答案说明唯一的区别是,与不同,它允许您稍后引用类型,似乎并非如此。 是什么区别,并在这种情况下,为什么不第一编译? 问题答案: 通过使用以下签名定义方法: 并像这样调用它: 在jls§8.1.2中,我们发现(有趣的部分被我加粗了): 通用类声明定义了一组参数化类型(第4.5节), 每种可能通过类型arguments调用类型参数节的类型

  • 本文向大家介绍在JSP中include动作和include指令之间有什么区别?,包括了在JSP中include动作和include指令之间有什么区别?的使用技巧和注意事项,需要的朋友参考一下 包含操作可让您将文件插入到正在生成的页面中。语法看起来像这样- 与include指令不同,include指令在将JSP页面转换为servlet时插入文件,而该动作则在请求页面时插入文件。

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

  • 我刚刚安装了Phonegap的第一个time.confuses我的事实是,一些文档正在使用命令“phonegap”和一些“cordova”是电话间隙和cordovan命令之间的区别?我需要使用哪个命令来创建phonegap应用程序?请任何人都可以帮助我?