2016-08-02 46 views
0

传入AngularJS模态数据我有一双控制器,看起来像这样:使用控制器和VM

(function() { 
    'use strict'; 

    angular 
     .module('room') 
     .controller('RoomGetCtrl', Room) 
     .controller('TestCtrl', Test) 

    Room.$inject = [...'$uibModal'...]; 
    Test.$inject = [...'$uibModalInstance'...]; 

    function Room(..., $scope, $uibModal) { 
     var vm = this; 

     ... 

     vm.open = function (size) { 

      vm.modalInstance = $uibModal.open({ 
       templateUrl: 'modal.html', 
       controller: 'TestCtrl as vm', 
      }); 
     }; 
    } 

    function Test(???){ 
     this.modalText = 'Modal Text' 
     this.modalCancel = function() { 
      ???.dismiss(); 
     } 
    } 
})(); 

视图看起来像这样:

<script type="text/ng-template" id="modal.html"> 
    <div class="modal-header"> 
     <h3 class="modal-title">Modal window</h3> 
    </div> 
    <div class="modal-body"> 
     <pre>{{ vm.modalText }}</pre> 
    </div> 
    <div class="modal-footer"> 
     <button class="btn btn-default" ng-click="vm.modalCancel()">Cancel</button> 
    </div> 
</script> 

<button type="button" class="btn btn-default" ng-click="vm.open()">Open me!</button> 
... 

上述工作,不同之处在于我无法弄清楚???上面Test()的内容。我尝试了各种各样的东西,无论何时单击取消按钮,控制台都会按照“x.dismiss不是函数”的方式记录错误,其中“x”是我尝试使用的任何东西。

任何帮助?

回答

0

没关系。我马上自己解决了这个问题(我发誓,发布这个问题让我觉得更好)。无论如何,在这里:

(function() { 
    'use strict'; 

    angular 
     .module('room') 
     .controller('RoomGetCtrl', Room) 
     .controller('TestCtrl', Test) 

    Room.$inject = [...,'$uibModal']; 
    Test.$inject = [$uibModalInstance]; 

    function Room(..., $uibModal) { 
     /*jshint validthis: true */ 
     var vm = this; 

     ... 

     vm.open = function() { 

      vm.modalInstance = $uibModal.open({ 
       templateUrl: 'modal.html', 
       controller: 'TestCtrl as vm', 
      }); 
     }; 
    } 

    function Test($uibModalInstance){ 
     this.modalText = 'Modal Text' 
     this.modalCancel = function() { 
      $uibModalInstance.dismiss(); 
     } 
    } 
})(); 

真的很简单。 $uibModalInstance.dismiss();。这是正确的,在该documentation

叹息