Angular之模態彈窗ui-bootstrap-modal及輕量級彈窗ngDialog


    ui-bootstrap 中模態

官網 angular-ui-bootstrap   對於ui-bootstrap集成大量指令如折疊ui.bootstrap.accordion、時間插件ui.bootstrap.datepicker、接下來要說明的模態窗ui.bootstrap.modal等.....

疑問? angular-ui-bootstrap-1.3.2 引入時遇到問題:

Error: [$injector:unpr] Unknown provider: $templateRequestProvider <- $templateRequest <- $uibModal

解決  angular-1.5.5 問題得以解決

官網案列——模態效果

ui-bootstrap-modal在線編輯代碼 請猛點擊這里

ui-bootstrap-modal實現Demo[折疊]如下

<!DOCTYPE html>
<html ng-app="ui.bootstrap.demo">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>ui.bootstrap 模態窗</title>
    <link rel="stylesheet" href="framework/bootstrap-3.0.0/css/bootstrap.min.css" />
    <script type="text/javascript" src="framework/angular-1.5.5/angular.js"></script>
    <script src="framework/angular-ui-bootstrap-1.3.2/ui-bootstrap-tpls.min.js"></script> 
</head>
<body ng-controller="ModalDemoCtrl">
    <div style="padding: 20px;">
        <button type="button" class="btn btn-primary" ng-click="open()">Open me!</button>
        <button type="button" class="btn btn-success" ng-click="open('lg')">Large modal</button>
        <button type="button" class="btn btn-default" ng-click="open('sm')">Small modal</button>
        <div ng-show="selected">Selection from a modal: {{ selected }}</div>
    </div>
    <script type="text/javascript">
        var myModal = angular.module('ui.bootstrap.demo', ['ui.bootstrap']);
        myModal.controller('ModalDemoCtrl', function ($scope, $uibModal, $log) {
            $scope.items = ['item1', 'item2', 'item3'];
            $scope.open = function (size) {
                var modalInstance = $uibModal.open({
                    templateUrl: 'myModalContent.html',
                    controller: 'ModalInstanceCtrl', /*依賴控制器注入*/
                    backdrop: "static",
                    size: size,
                    resolve: { /*傳遞到模態窗口中的對象*/
                        items1: function () {
                            return $scope.items;
                        }
                    }
                });
                //模態實例---ModalDemoCtrl中的$scope
                //接收點擊ok參數
                modalInstance.result.then(function (selectedItem) {
                    $scope.selected = selectedItem;
                }, function () {
                    $log.info('Modal dismissed at: ' + new Date());
                });
            };

            $scope.toggleAnimation = function () {
                $scope.animationsEnabled = !$scope.animationsEnabled;
            };
        });

        //$uibModalInstance是模態窗口的實例  
        myModal.controller('ModalInstanceCtrl', function ($scope, $uibModalInstance, items1) {
            $scope.items = items1;
            $scope.selected = {
                item: $scope.items[0]
            };
            $scope.ok = function () {
                //$scope.selected.item 值傳到
                $uibModalInstance.close($scope.selected.item);
            };
            $scope.cancel = function () {
                $uibModalInstance.dismiss('cancel');
            };
        });
    </script>
    
    <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">
            <ul>
                <li ng-repeat="item in items">
                    <a href="#" ng-click="$event.preventDefault(); selected.item = item">{{ item }}</a>
                </li>
            </ul>
            Selected: <b>{{ selected.item }}</b>
        </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>
</body>
</html>

  ngDialog 輕量級彈窗

官網 ng-dialog

<!DOCTYPE html>
<html lang="en" ng-app="indexApp">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--引入第三方樣式庫bootstrap.min.css-->
		<link rel="stylesheet" href="framework/bootstrap-3.0.0/css/bootstrap.min.css" />
    <link rel="stylesheet" href="framework/ngDialog-0.6.4/css/ngDialog.css">
    <link rel="stylesheet" href="framework/ngDialog-0.6.4/css/ngDialog-theme-default.css">
    
    <link rel="stylesheet" href="css/main.css" />
   <!--引入js庫anglarjs-->
	<script type="text/javascript" src="framework/1.3.0.14/angular.js"></script>
	<script type="text/javascript" src="framework/ngDialog-0.6.4/js/ngDialog.js"></script>
</head>
<body ng-controller="indexCtrl">
<button class="btn btn-primary" ng-click="clickToOpen()">彈窗</button>
<script>
    var myModal = angular.module('indexApp',['ngDialog']);
        myModal.controller('indexCtrl',function($scope,ngDialog, $http){
        	
           $http.get('cardInfo/cardInfo.json').success(function(data) {
			    $scope.cardInfo = data;
			});
			
            $scope.clickToOpen = function () {
                ngDialog.open({
                    template: 'templateId.html',
                    className:'ngdialog-theme-default ngdialog-theme-plain',
                    scope: $scope,
                    width: '60%',
                    controller:function($scope){
                        $scope.show = function(){
                            $scope.closeThisDialog(); //關閉彈窗
                        }
                    }
                });
            };
        })
</script>

<script type="text/ng-template" id="templateId.html">
		<div class="ui-dialog-title ">卡片詳情信息</div>
		<div class="ui-dialog-content">
	    <table class="table table-bordered table-hover">  
		  <thead>  
		    <tr>  
		      <th>場所名稱</th>
		      <th>門名稱</th>  
		      <th>員工姓名</th>  
		      <th>員工電話</th>  
		      <th>卡號</th>
		      <th>開卡日期</th>
		      <th>部門名稱</th>  
		    </tr>  
		  </thead>  
		  <tbody>  
		    <tr ng-repeat="cardInfos in cardInfo">  
		      <td>{{cardInfos.place}}</td>  
		      <td>{{cardInfos.doorName}}</td>  
		      <td>{{cardInfos.name}}</td> 
		      <td>{{cardInfos.phoneNumber}}</td> 
		      <td>{{cardInfos.cardNumber}}</td>  
		      <td>{{cardInfos.carDate | date: 'yyyy-MM-dd' }}</td> 
		      <td>{{cardInfos.department}}</td>  
		    </tr>
		  </tbody>  
		</table>
        <button type="submit" class="btn btn-primary" ng-click="show()">保存</button>
        <button type="button" class="btn btn-default" ng-click="closeThisDialog()">取消 </button>
    </div>
</script>
</body>
</html>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM