AngularJs 彈出模態(tài)框(model)

字號:


    這篇文章主要介紹了AngularJs 彈出模態(tài)框(model)的相關資料,需要的朋友可以參考下
    $modal是一個可以迅速創(chuàng)建模態(tài)窗口的服務,創(chuàng)建部分頁,控制器,并關聯(lián)他們。
    $modal僅有一個方法open(options)
    templateUrl:模態(tài)窗口的地址
    template:用于顯示html標簽
    scope:一個作用域為模態(tài)的內(nèi)容使用(事實上,$modal會創(chuàng)建一個當前作用域的子作用域)默認為$rootScope
    controller:為$modal指定的控制器,初始化$scope,該控制器可用$modalInstance注入
    resolve:定義一個成員并將他傳遞給$modal指定的控制器,相當于routes的一個reslove屬性,如果需要傳遞一個objec對象,需要使用angular.copy()
    backdrop:控制背景,允許的值:true(默認),false(無背景),“static” - 背景是存在的,但點擊模態(tài)窗口之外時,模態(tài)窗口不關閉
    keyboard:當按下Esc時,模態(tài)對話框是否關閉,默認為ture
    windowClass:指定一個class并被添加到模態(tài)窗口中
    open方法返回一個模態(tài)實例,該實例有如下屬性
    close(result):關閉模態(tài)窗口并傳遞一個結(jié)果
    dismiss(reason):撤銷模態(tài)方法并傳遞一個原因
    result:一個契約,當模態(tài)窗口被關閉或撤銷時傳遞
    opened:一個契約,當模態(tài)窗口打開并且加載完內(nèi)容時傳遞的變量
    另外,$modalInstance擴展了兩個方法$close(result)、$dismiss(reason),這些方法很容易關閉窗口并且不需要額外的控制器
    HTML
    <!DOCTYPE html> 
    <html ng-app="ModalDemo"> 
    <head> 
    <title></title> 
    <link href="lib/bootstrap/css/bootstrap.min.css" rel="stylesheet"> 
    <script src="lib/angular/angular.min.js"></script> 
    <script src="lib/bootstrap-gh-pages/ui-bootstrap-tpls-...min.js"></script> 
    <script src="lib/angular/in/angular-locale_zh-cn.js"></script> 
    </head> 
    <body> 
    <div ng-controller="ModalDemoCtrl"> 
    <script type="text/ng-template" id="myModalContent.html"> 
    <div> 
    <h>I'm a modal!</h> 
    </div> 
    <div> 
    <ul> 
    <li ng-repeat="item in items"> 
    <a ng-click="selected.item = item">{{ item }}</a> 
    </li> 
    </ul> 
    Selected: <b>{{ selected.item }}</b> 
    </div> 
    <div> 
    <button ng-click="ok()">OK</button> 
    <button ng-click="cancel()">Cancel</button> 
    </div> 
    </script> 
    <button ng-click="open()">Open me!</button> 
    </div> 
    <script> 
    var ModalDemo = angular.module('ModalDemo', ['ui.bootstrap']); 
    var ModalDemoCtrl = function ($scope, $modal, $log) { 
    $scope.items = ['item', 'item', 'item']; 
    $scope.open = function () { 
    var modalInstance = $modal.open({ 
    templateUrl: 'myModalContent.html', 
    controller: ModalInstanceCtrl, 
    resolve: { 
    items: function () { 
    return $scope.items; 
    } 
    } 
    }); 
    modalInstance.opened.then(function(){//模態(tài)窗口打開之后執(zhí)行的函數(shù) 
    console.log('modal is opened'); 
    }); 
    modalInstance.result.then(function (result) { 
    console.log(result); 
    }, function (reason) { 
    console.log(reason);//點擊空白區(qū)域,總會輸出backdrop click,點擊取消,則會暑促cancel 
    $log.info('Modal dismissed at: ' + new Date()); 
    }); 
    }; 
    }; 
    var ModalInstanceCtrl = function ($scope, $modalInstance, items) { 
    $scope.items = items; 
    $scope.selected = { 
    item: $scope.items[] 
    }; 
    $scope.ok = function () { 
    $modalInstance.close($scope.selected); 
    }; 
    $scope.cancel = function () { 
    $modalInstance.dismiss('cancel'); 
    }; 
    }; 
    </script> 
    </body> 
    </html>
    以上所述是小編給大家介紹的AngularJs 彈出模態(tài)框(model)的相關內(nèi)容,希望對大家有所幫助!