Javascript 部分隔离范围角

Javascript 部分隔离范围角,javascript,angularjs,forms,angularjs-scope,Javascript,Angularjs,Forms,Angularjs Scope,我有一个指令,我想在一个页面上包含多个次。 我还想从父控制器控制该指令 举例来说,该指令是一个模态,其中包含转置的部分。此分部具有发送消息的表单 我想从我的父控制器中指定该表单的功能,但是当我隔离作用域(以便每页可以有多个指令)时,我无法再访问angular创建的表单对象 我愿意接受建议 html页面 好的,在把它全部打出来之后,我意识到如何做这样的事情。 我的目标是隔离指令的范围,而不是内部表单的范围。 所以我所要做的就是改变我所包含的表单/模式内容的编译范围 $compile(element

我有一个指令,我想在一个页面上包含多个次。
我还想从父控制器控制该指令

举例来说,该指令是一个模态,其中包含转置的部分。此分部具有发送消息的表单

我想从我的父控制器中指定该表单的功能,但是当我隔离作用域(以便每页可以有多个指令)时,我无法再访问angular创建的表单对象

我愿意接受建议

html页面
好的,在把它全部打出来之后,我意识到如何做这样的事情。
我的目标是隔离指令的范围,而不是内部表单的范围。
所以我所要做的就是改变我所包含的表单/模式内容的编译范围

$compile(element.find('[ng transclude]').contents())($scope.$parent)
而不是
$compile(element.find('[ng transclude]').contents())($scope)

无论如何谢谢你

-詹姆斯·哈林顿

<page controller="pageCtrl">
  <modal partial="/path/to/partial1"></modal>
  <modal partial="/path/to/partial2"></modal>
</page>
partial1.html
  <form name="formName1"></form>
partial2.html
  <form name="formName1"></form>
app.directive('modal', function(){
  return {
    restrict: 'AE',
    transclude: true,
    replace: true,
    scope:true,
    templateUrl: '/path/to/modal.html',
    link:function($scope, elem, attrs){
      $http.get(attrs.partial, { cache: $templateCache })
      .success(function(response) {
        element.find('[ng-transclude]').append(response);
        $compile(element.find('[ng-transclude]').contents())($scope);
      });
    }
  }
});
app.controler('pageCtrl', function(){
  $scope.submitForm1 = function(data){
    if($scope.formName1.$valid){
      //DO SOMETHING
    }
  }
})