2016-04-01 12 views
0

私のサイトにはいくつかのモーダルを含むページコントローラがあります。いくつかのモーダルコントローラは堅牢になってきており、外部ページコントローラのスコープを失うことなく別のコントローラに移動したいと考えています(モーダルコントローラはページコントローラのいくつかの機能とプロパティを使用しています)。これまでは、外側のコントローラを参照するものにエラーが発生しています。ここで私はそれがセットアップされているかの簡単な例です:角モダルコントローラを別々のファイルに移動

ページコントローラ:

angular.module('myApp') 
.controller('outerCtrl', function(MetaService) { 
    var thisCtrl = this; 

    thisCtrl.someFunction = function() { 
     //some cool functionality that will elvaluate something 
    } 

    function optionsModal() { 
     var PageCtrl = thisCtrl; 

     $uibModal.open({ 
      'controller': 'scripts/controllers/optionsModal.js', 
      'controllerAs': 'ModalCtrl', 
      'templateUrl': 'views/modals/optionsModal.html', 
      'size': 'md'    
     }); 
    } 
}); 

モーダルコントローラ:ここ

angular.module('myApp') 
.controller('optionsModalCtrl', function(MetaService) { 
    var modalCtrl = this; 

    function giveOptions() { 
     if (PageCtrl.someFunction()) { 
      //offer some option 
     } else { 
      //offer a different option 
     } 
    } 

}); 

答えて

0

は公式ページからexampleです:

var modalInstance = $uibModal.open({ 
     animation: $scope.animationsEnabled, 
     templateUrl: 'myModalContent.html', 
     controller: 'ModalInstanceCtrl', 
     size: size, 
     scope: $scope, // pass parent scope to modal instance 
     resolve: { 
     items: function() { 
      return $scope.items; 
     } 
     } 
    }); 
+0

ありがとう、これは意味がありますが、私のために働いていないようです。私はリンクを読んで、いくつかの異なる方法で試しました。私は、私がしたいことではない(自分のコードで$ scopeを使用することをお勧めします)ので、私は '$ scope.pageCtrl = PageCtrlを試してみました。そのようなスコープを渡すことはできませんでした。ちょうど実験のために、私はいくつかのものにスコープをつけ、モーダルのプロパティとしてスコープを渡しましたが、まだモーダルのコントローラからエラーが出ました: – HolyMoly

関連する問題