2016-06-16 3 views
0

ボタンでUIブートストラップモーダルを開くことはできますが、Ctrlキーを押しながらプログラムで開く方法はありますか?UIブートストラップモーダルをプログラムで開く

Plunkerhttp://plnkr.co/edit/Cdq2d9l1XxCi10bFXtBt?p=preview

JS:

// open modal if this is true 
    $scope.openModal = true; 

    $scope.open = function (size) { 

    var modalInstance = $uibModal.open({ 
     animation: $scope.animationsEnabled, 
     templateUrl: 'myModalContent.html', 
     controller: 'ModalInstanceCtrl', 
     size: size, 
     resolve: { 
     items: function() { 
      return $scope.items; 
     } 
     } 
    }); 

    modalInstance.result.then(function (selectedItem) { 
     $scope.selected = selectedItem; 
    }, function() { 
     $log.info('Modal dismissed at: ' + new Date()); 
    }); 
    }; 

は、HTML:

<script type="text/ng-template" id="myModalContent.html"> 
    <div class="modal-header"> 
     <h3 class="modal-title">I'm a modal!</h3> 
    </div> 
    <div class="modal-body"> 
     Modal body 
    </div> 
    <div class="modal-footer"> 
     <button class="btn btn-primary" type="button" ng-click="ok()">OK</button> 
     <button class="btn btn-warning" type="button" ng-click="cancel()">Cancel</button> 
    </div> 
</script> 
+0

'$ scope.open(); ' –

答えて

0

あなたは自分のコントローラに呼び出す必要があります。

$ scope.open();

ここで、あなたのコントローラにモーダルを表示することができます。

+0

スニペットを実行したい場合は投稿できます。それがうまくいけば私の答え:) –

0

私は、これはうまくいくかもしれないと思う:

angular.element('#myModalContent.html').trigger('click'); 

それがロードするときに、ボタンがクリックされたように、コントローラを作用させる必要があること。

0

クリックするだけで$scope.open(size)がトリガーされているので、Saurabhが既に言及したように、いつでもどこでもその機能を呼び出すことができます。

また、そのボタンで「実際のクリックイベント」をトリガーする場合は、angular.elementを使用することができます。あなたのコードのための作業例は次のように何とかなります:あなたは、マウスでクリックしたかのように

angular.element('#your_button_id').triggerHandler('click'); 

をこれは単に、あなたの機能を起動し、モーダルを開くであろう、と、クリックを模倣します。

関連する問題