加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 范围有什么区别:{}和范围:true内部指令?

发布时间:2020-12-17 08:22:38 所属栏目:安全 来源:网络整理
导读:我找不到关于Angular.js的这个信息,我注意到我正在工作时,这两个值的工作方式不一样。有什么不同? .directive('foo',function() { return { scope: true };});.directive('foo',function() { return { scope: {} };}); 两个范围:true和scope:{}将为该指
我找不到关于Angular.js的这个信息,我注意到我正在工作时,这两个值的工作方式不一样。有什么不同?
.directive('foo',function() {

  return {
    scope: true
  };
});

.directive('foo',function() {

  return {
    scope: {}
  };
});
两个范围:true和scope:{}将为该指令创建一个子范围。但,

范围:true将原型从父级继承属性(例如指令所在的控制器),其范围:{}将不会从父级继承属性,因此称为隔离

例如说我们有一个控制器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范围 – >其中d2与c1范围隔离。

注1:d1和d2将为每个定义的指令创建一个新的范围。

注2:除了两者之间的区别,范围:true – 对新的子范围所做的任何更改都不会反映到父范围。但是,由于新范围是从父范围继承的,因此在c1范围(父范围)中所做的任何更改都将反映在指令范围内。

提示:使用范围:{}或隔离范围进行可重复使用的角度指令。所以你不会最终弄乱父范围属性

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读