[轉]通過AngularJS directive對bootstrap日期控件的的簡單包裝


本文轉自:http://www.cnblogs.com/Benoly/p/4109460.html

最近項目上了AngularJS,而原來使用的日期控件的使用方式也需要改變,於是開始了倒騰,看了官方的例子,可以使用AngularJS的directive做簡單的處理,這樣在html里直接使用申明的的形式即可使用了。

?
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
<!doctype html>
<html ng-app= "datepickerApp" >
     <head>
         <link type= "text/css" rel= "stylesheet" href= "bootstrap/css/bootstrap.css" />
         <link type= "text/css" rel= "stylesheet" href= "bootstrap-datepicker/css/datepicker3.css" />
         <script src= "jquery/jquery-1.11.1.min.js" ></script>
         <script src= "angular.js" ></script>
         <script src= "bootstrap/js/bootstrap.js" ></script>
         <script src= "bootstrap-datepicker/js/bootstrap-datepicker.js" ></script>
     </head>
     <body>
       <input type= "text" class = "datepicker" >
       <hr>
         <div ng-controller= "datepickerController" >
             <input type= "text" bs-Datepicker ng-model= "vm.selectedDate" >
             <button ng-click= "vm.show($event)" >Date SELECT</button>
 
             <br>
             vm.selectedDate: {{vm.selectedDate}}
         </div>
         
         <script type= "text/javascript" >
             //bootstrap-datepicker
             var datepicker1 = $( '.datepicker' ).datepicker()
                 .on( 'changeDate' , function (ev){
                     var newDate = new Date(ev.date)                
                     datepicker1.hide()
 
                     alert(newDate)
                 })
                 .data( 'datepicker' )
 
 
             //angular
             var app = angular.module( 'datepickerApp' , [])
             
             //angular-directive
             app.directive( 'bsDatepicker' , function (){
                 return {
                     restrict : 'EA' ,
                     scope:{
             model: "=ngModel"
             },
                     link : function (scope,element,attrs,ctrl){
                         var datepicker1 = $(element).datepicker()
                             .on( 'changeDate' , function (ev){
                                 var newDate = new Date(ev.date)                
                                 datepicker1.hide()
 
                                 alert(newDate)
                             })
                             .data( 'datepicker' )
                     }
                 }
             })
 
             app.controller( 'datepickerController' , function ($scope){
                 
                 var vm = $scope.vm = {
                     selectedDate : new Date(),
                     setDate : function (date){
                         selectedDate = date
                     },
                     clearDate : function (){
                         selectedDate =  null
                     },
                     show : function ($event){
                         
                     },
                     hide : function (){
 
                     }
                 }
                 
 
      
 
 
 
             })
 
         </script>
     </body>
</html>

 


免責聲明!

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



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