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

前端之家收集整理的这篇文章主要介绍了angularjs – 范围有什么区别:{}和范围:true内部指令?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我找不到关于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范围(父范围)中所做的任何更改都将反映在指令范围内。

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

猜你在找的Angularjs相关文章