index.html
5.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<!DOCTYPE html>
<html ng-app="myApp">
<head lang="en" >
    <meta charset="UTF-8">
    <title>xn-directive-dialog提示</title>
    <link href="../spm_modules/bootstrap-css/1.0.2/bootstrap.css" rel="stylesheet">
    <link href="../demo/base.css" rel="stylesheet">
    <link href="../directive/style.css" rel="stylesheet">
    <script type="text/javascript" src="../spm_modules/jquery/1.7.2/jquery.js"></script>
    <script type="text/javascript" src="../spm_modules/angular/1.3.9/angular.js"></script>
    <script type="text/javascript" src="../spm_modules/angular-ui/1.0.0/bootstraptpls.js"></script>
    <script type="text/javascript" src="../directive/directives.js"></script>
</head>
<body >
<h3>弹出框编辑</h3>
<div ng-controller="ModalDemoCtrl">
    <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 ng-click="selected.item = item">{{ item }}</a>
                </li>
            </ul>
            Selected: <b>{{ selected.item }}</b>
        </div>
        <div class="modal-footer">
            <button class="btn btn-primary" ng-click="ok()">OK</button>
            <button class="btn btn-warning" ng-click="cancel()">Cancel</button>
        </div>
    </script>
    <button class="btn btn-default" ng-click="open()">Open me!</button>
    <button class="btn btn-default" ng-click="open('lg')">Large modal</button>
    <button class="btn btn-default" ng-click="open('sm')">Small modal</button>
    <div ng-show="selected">Selection from a modal: {{ selected }}</div>
</div>
<h3>使用说明</h3>
<pre>
    $modal is a service to quickly create AngularJS-powered modal windows. Creating custom modals is straightforward: create a partial view, its controller and reference them when using the service.
    The $modal service has only one method: open(options) where available options are like follows:
    templateUrl - a path to a template representing modal's content
    template - inline template representing the modal's content
    scope - a scope instance to be used for the modal's content (actually the $modal service is going to create a child scope of a provided scope). Defaults to $rootScope
    controller - a controller for a modal instance - it can initialize scope used by modal. Accepts the "controller-as" syntax in the form 'SomeCtrl as myctrl'; can be injected with $modalInstance
    controllerAs - an alternative to the controller-as syntax, matching the API of directive definitions. Requires the controller option to be provided as well
    resolve - members that will be resolved and passed to the controller as locals; it is equivalent of the resolve property for AngularJS routes
    backdrop - controls presence of a backdrop. Allowed values: true (default), false (no backdrop), 'static' - backdrop is present but modal window is not closed when clicking outside of the modal window.
    keyboard - indicates whether the dialog should be closable by hitting the ESC key, defaults to true
    backdropClass - additional CSS class(es) to be added to a modal backdrop template
    windowClass - additional CSS class(es) to be added to a modal window template
    windowTemplateUrl - a path to a template overriding modal's window template
    size - optional size of modal window. Allowed values: 'sm' (small) or 'lg' (large). Requires Bootstrap 3.1.0 or later
    The open method returns a modal instance, an object with the following properties:
    close(result) - a method that can be used to close a modal, passing a result
    dismiss(reason) - a method that can be used to dismiss a modal, passing a reason
    result - a promise that is resolved when a modal is closed and rejected when a modal is dismissed
    opened - a promise that is resolved when a modal gets opened after downloading content's template and resolving all variables
    In addition the scope associated with modal's content is augmented with 2 methods:
    $close(result)
    $dismiss(reason)
    Those methods make it easy to close a modal window without a need to create a dedicated controller.
</pre>
<script type="text/javascript">
    angular.module('myApp',["ui.bootstrap"]).controller('ModalDemoCtrl', function ($scope, $modal, $log) {
        $scope.items = ['item1', 'item2', 'item3'];
        $scope.open = function (size) {
            var modalInstance = $modal.open({
                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());
            });
        };
    })
    .controller('ModalInstanceCtrl', ["$scope", "$modalInstance", "items",function ($scope, $modalInstance, items) {
        $scope.items = items;
        $scope.selected = {
            item: $scope.items[0]
        };
        $scope.ok = function () {
            $modalInstance.close($scope.selected.item);
        };
        $scope.cancel = function () {
            $modalInstance.dismiss('cancel');
        };
    }]);
</script>
</body>
</html>