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

如何在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 = {};

(编辑:李大同)

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

    推荐文章
      热点阅读