如何在AngularJS中分配两个指令之间的范围?
发布时间:2020-12-17 07:41:47 所属栏目:安全 来源:网络整理
导读:我想分享以下两个指令之间的$范围: One23SRCApp.directive('directive1',function() { return { restrict: "A",scope:true,link: function (scope,element,attrs) { scope.tablename = "table"; } };});One23SRCApp.directive('directive2',attrs) { var ta
我想分享以下两个指令之间的$范围:
One23SRCApp.directive('directive1',function() { return { restrict: "A",scope:true,link: function (scope,element,attrs) { scope.tablename = "table"; } }; }); One23SRCApp.directive('directive2',attrs) { var tablename = scope.tablename; } }; }) 在HTML中,我有: <input type="text" directive2 placeholder="Search Models..."> <table directive1> <tr> <td>column1</td> <td>column1</td> </tr> </table> 我创建了带有隔离范围的名为“directive1”的指令,将名称“table”分配给scope.tablename属性.我无法在其他指令中访问此scope属性. 那么如何在另一个指令中访问一个指令的范围?
您可以对需要在指令中同步的项目执行$rootScope.$broadcast.
或者您可以将对象传递给您的指令1隔离的作用域,作为通信机制.在此对象上,如果您更改子属性(如tablename),则会影响父范围. 就像是 One23SRCApp.directive('directive1',scope:{tableconfig:'='},attrs) { scope.tableconfig.tablename= "table"; } }; }); One23SRCApp.directive('directive2',attrs) { var tablename = scope.tableconfig.tablename; } }; }) HTML成为 <table directive1 tableconfig='tableconfig'> <tr> <td>column1</td> <td>column1</td> </tr> </table> 您的控制器应该定义此对象 $scope.tableconfig = {}; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |