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范围(父范围)中所做的任何更改都将反映在指令范围内。 提示:使用范围:{}或隔离范围进行可重复使用的角度指令。所以你不会最终弄乱父范围属性 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |