2015-09-16 133 views
-3

我想通過點擊打開另一個模式「打開我鏈接」如何在ui bootstrap中打開另一個模態的模態?

代碼和摘要下面提供。

modal image

的script.js

angular.module('myApp', ['ui.bootstrap','angular-drawer']); 

angular.module( '對myApp')。控制器( 'mainCtrl',函數($範圍,$模態,$日誌){$ scope.open = function(){

$modal.open({ 
     templateUrl: 'myModalContent.html', 
     backdrop: true, 
     windowClass: 'modal', 
     controller: function ($scope, $modalInstance, $log, user) { 
      $scope.user = user; 
      $scope.submit = function() { 
       $log.log('Submiting user info.'); 
       $log.log(user); 
       $modalInstance.dismiss('cancel'); 
      } 
      $scope.cancel = function() { 
       $modalInstance.dismiss('cancel'); 
      }; 
     }, 
     resolve: { 
      user: function() { 
       return $scope.user; 
      } 
     } 
    }); 
}; 


$scope.open1 = function() { 

    $modal.open({ 
     templateUrl: 'myModalContent1.html', 
     backdrop: true, 
     windowClass: 'modal', 
     controller: function ($scope,open, $modalInstance, $log, user) { 
      $scope.opensignup=function() { 

       $modalInstance.dismiss('cancel'); 
      }; 
      $scope.user = user; 
      $scope.submit = function() { 
       $log.log('Submiting user info.'); 
       $log.log(user); 
       $modalInstance.dismiss('cancel'); 
      } 
      $scope.cancel11 = function() { 
       $modalInstance.dismiss('cancel'); 
      }; 
     }, 
     resolve: { 
      user: function() { 
       return $scope.user; 
      } 
     } 
    }); 
}; 

});

HTML

<script type="text/ng-template" id="myModalContent.html"> 
     <div class="modal-header"> 
      <h3>I'm a modal!</h3> 
     </div> 
     <form ng-submit="submit()"> 
      <div class="modal-body"> 
       <label>User name</label> 
       <input type="text" ng-model="user.user" /> 
       <label>Password</label> 
       <input type="password" ng-model="user.password" /> 
      </div> 
      <a ng-click="opensignup()">Open me!</a> 
      <div class="modal-footer"> 
       <button class="btn btn-warning" ng-click="cancel11()">Cancel</button> 
       <input type="submit" class="btn primary-btn" value="Submit" /> 
      </div> 
     </form> 
    </script> 

    <script type="text/ng-template" id="myModalContent1.html"> 
     <div class="modal-header"> 
      <h3>I'm a modal11111111111111111111111!</h3> 
     </div> 
     <form ng-submit="submit()"> 
      <div class="modal-body"> 
       <label>User name</label> 
       <input type="text" ng-model="user.user" /> 
       <label>Password</label> 
       <input type="password" ng-model="user.password" /> 
      </div> 
      <button class="btn" ng-click="cancel()">Open me!</button> 
      <div class="modal-footer"> 
       <a class="btn btn-warning" ng-click="cancel()">Cancel</a> 
       <input type="submit" class="btn primary-btn" value="Submit" /> 
      </div> 
     </form> 
    </script> 

    <button class="btn" ng-click="open()">Open me!</button> 
+0

http://getbootstrap.com/javascript/#modals說:不支持多個開放模式 –

+0

很好..你描述了你想要做什麼,但沒有指出你遇到的問題或任何代碼。你有什麼具體問題? – charlietfl

+0

例如,如果您需要從模態「登錄」更改爲模態「忘記密碼」,則可以在某些模塊中使用ng-if/ng-show/ng-hide,使用相同模式或關閉當前模式模態並打開下一個模態。 –

回答

2

你可以做這樣的事情:

在你的控制器

:(與你的控制器注入$模式)

$scope.openLogin = function() { 
     var modalInstance = $modal.open({ 
      templateUrl: 'login.html', 
      controller: $scope.modalLogin 
     }); 
    } 

    $scope.modalLogin = function ($scope, $modalInstance) { 
     //edit to close modal login 
     $scope.modalLoginInstance = $modalInstance; 
     $scope.cancelLogin = function() { 
      $modalInstance.dismiss('cancel'); 
     } 
    } 

    $scope.login = function() { 
     //Your code to login 

    } 

    $scope.openMe = function(){ 
     var modalInstance = $modal.open({ 
      templateUrl: 'openMe.html', 
      controller: $scope.modalOpenMe 
     }); 
    } 

    $scope.modalOpenMe = function ($scope, $modalInstance) { 
     //edit to close modal login 
     $scope.modalLoginInstance.dismiss('cancel'); 
     $scope.cancelOpenMe = function() { 
      $modalInstance.dismiss('cancel'); 
     } 
    } 

在你的HTML登錄:

<div ng-controller="YourController"> 
<div class="modal-header"> 
    <button type="button" class="close" data-dismiss="modal" aria-label="Close" ng-click="cancelLogin()"><span aria-hidden="true">&times;</span></button> 
    <h2 class="modal-title">Your Title</h2> 
</div> 
<div class="modal-body"> 
    //your login form 
    //For link openMe bind method openMe with ng-click 
</div> 
<div class="modal-footer"> 
    //your footer 
</div> 

創建您的模板openMe。 我爲我的應用程序使用類似的東西,我可以打開主模式上方的輔助模式。

我希望這會幫助你。

+0

喬納森謝謝你的答案...一切工作正常,但是當我打電話給modalopenMe控制器cancelLogin ...「沒有任何反應」。 你能幫助我如何調用cancelLogin函數嗎? –

+0

看看編輯,我改變了代碼來關閉模式。您將模態登錄的$ modalInstance放在一個範圍內,並在openMe方法中調用方法解除。祝你有個愉快的日子 – JonathanTheBrosh

+0

現在有效嗎? – JonathanTheBrosh

相關問題