angularjs – 如何将变量从隔离范围指令传递给子节点?
发布时间:2020-12-17 16:56:58 所属栏目:安全 来源:网络整理
导读:我有两个独立的范围指令.理想情况下,我喜欢独立工作,不需要任何自定义模板.第一个指令将是页面滚动观察器,当它到达某一点时,我希望它在另一个指令中触发更新.子指令是否可以在父指令中观察变量? 我已经创建了一个简单的plunkr来说明问题,http://plnkr.co/ed
我有两个独立的范围指令.理想情况下,我喜欢独立工作,不需要任何自定义模板.第一个指令将是页面滚动观察器,当它到达某一点时,我希望它在另一个指令中触发更新.子指令是否可以在父指令中观察变量?
我已经创建了一个简单的plunkr来说明问题,http://plnkr.co/edit/wwfBzmemyrj1r1R54riM?p=preview /* <div ng-outer>Outer directive {{myvar}} <div ng-inner="myvar">Inner directive</div> </div> */ app.directive('ngOuter',[ '$timeout',function ($timeout) { var directive = { restrict: 'A',scope:{} } directive.link = function (scope,element,attrs) { $timeout(function(){ scope.myvar = "test 001" },1000) } return directive; }]); app.directive('ngInner',[ function () { var directive = { restrict: 'A',scope:{ data: '=ngInner',myvar: '=myvar' } } directive.link = function (scope,attrs) { scope.$watch('data',function(newVal,oldVal){ if(newVal) element.text("new inner val",newVal); }); scope.$watch('myvar',oldVal){ if(newVal) element.text("new myvar",newVal); }); } return directive; }]); 解决方法
通过使用解决了这个问题
angular.element(element.parent()).isolateScope(); 子指令可以访问父指令的范围并监视变量等. http://plnkr.co/edit/RAO6q81ZE4tClMDMiLFb?p=preview (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |