Javascript 使用一个指令从另一个隔离作用域复制作用域属性

Javascript 使用一个指令从另一个隔离作用域复制作用域属性,javascript,angularjs,angularjs-directive,angularjs-scope,angular-ui,Javascript,Angularjs,Angularjs Directive,Angularjs Scope,Angular Ui,基本上,我有一个指令,由两种形式使用。在页面加载时,每个页面都加载由指令设置的默认属性。问题是,两个表单都需要有一个复选框选项,以便能够将相同的属性应用于另一个表单。我有两个单独的html模板和每个表单的控制器 返回函数行(ModelService){ 返回{ 限制:'E', templateUrl:函数(元素、属性){ 返回elem.templateUrl; }, 范围:{ formTitle:“@”, 类型:“@” }, 链接:功能(范围、要素){ scope.setDefault=函数(

基本上,我有一个指令,由两种形式使用。在页面加载时,每个页面都加载由指令设置的默认属性。问题是,两个表单都需要有一个复选框选项,以便能够将相同的属性应用于另一个表单。我有两个单独的html模板和每个表单的控制器

返回函数行(ModelService){
返回{
限制:'E',
templateUrl:函数(元素、属性){
返回elem.templateUrl;
},
范围:{
formTitle:“@”,
类型:“@”
},
链接:功能(范围、要素){
scope.setDefault=函数(){
.
.此处定义的范围设置
.
.
.
}
scope.close=功能(操作){
.
。如果(选中){
。将设置应用于其他表单时需要一些代码
. }
.
.
.
}
};
});

. 
.具有ng模型的多个div元素
.
.
.
.
.具有ng模型的多个div元素
.
.
.

您可以创建一些工厂来保存您的公共数据。您可以将其注入控制器或指令,这取决于您的用例

我创建了一些示例,说明了这一点:

HTML:


另一种可能性是将其注入到指令或某种“静态”中指令中的上下文

您需要使用公共服务和广播更改。我可以要求一些关于这方面的参考资料吗?我还没有使用广播更改。工厂,正是我想要的。非常感谢!很抱歉,我无法对您的答案投赞成票,目前声誉还不够。哇,谢谢!投赞成票:)其他问题由另外,如果我使用隔离作用域呢?工厂将如何处理它?只有一个控制器被两个html使用。此指令使用隔离作用域(请参阅定义对象中的scope属性)。
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular.min.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body ng-app="directiveBroadcast">
  <div ng-controller="directiveCtrl1 as ctrl1">    
    <checkboxes ng-model="ctrl1.checkboxData"></checkboxes>
  </div>
  <div ng-controller="directiveCtrl2 as ctrl2">
    <checkboxes ng-model="ctrl2.checkboxData"></checkboxes>
  </div>

<script type="text/ng-template" id="/directive.html">
  <div>Directive</div>  
  <input type="checkbox" ng-model="ngModel.checkbox1" />
  <input type="checkbox" ng-model="ngModel.checkbox2" />
</script>
</body>
</html>
angular.module('directiveBroadcast',  [])
.factory('checkboxData', function() {
  return {checkbox1 : true,
          checkbox2 : false
         };
})
.controller('directiveCtrl1', function(checkboxData){
  this.checkboxData = checkboxData;            
})
.controller('directiveCtrl2',function(checkboxData){
  this.checkboxData = checkboxData;            
})
.directive("checkboxes", function() {
  return {
    restrict: "E",
    scope: {
      ngModel: "="      
    },
    templateUrl: "/directive.html"    
  };
});