2013-08-02 25 views
5

Tôi đang sử dụng angularjs và tôi muốn trình khởi động ngày giờ khởi động của mình được hiển thị sau khi nhấp vào biểu tượng lịch.
Bây giờ là như thế này:biểu tượng bootstrap-datepicker có thể nhấp với chỉ thị góc

<div class="input-append date datepicker"> 
    <input type="text" b-datepicker ng-model="date"/> 
    <span class="add-on" ><i class="icon-calendar"></i></span> 
</div> 


đâu b-datepicker là chỉ thị tùy chỉnh. Nhấp vào trường văn bản hiển thị ngày tháng, nhưng nhấp vào biểu tượng không hoạt động.
nguồn Dưới đây là: http://jsfiddle.net/cPVDn/

Mục tiêu của tôi là trở thành như thế này:
http://jsfiddle.net/6QnMB/

Tôi đánh giá cao sự giúp đỡ nào

UPDATE:
Dưới đây là giải pháp:
http://jsfiddle.net/cPVDn/53/

+0

xin vui lòng gửi chỉnh sửa của bạn là câu trả lời –

Trả lời

1

tôi gửi bài giải pháp như câu trả lời riêng biệt.

Để làm biểu tượng nhấp chuột công việc thay vì:

directive('bDatepicker', function() { 
return { 
    restrict: 'A', 
    link: function (scope, el, attr) { 
     el.datepicker(); 
    } 
    }; 
}) 

người ta có thể sử dụng một cái gì đó như:

directive('bDatepicker', function() { 
return { 
    restrict: 'A', 
    link: function (scope, el, attr) { 
     el.datepicker({}); 
     var component = el.siblings('[data-toggle="datepicker"]'); 
     if (component.length) { 
      component.on('click', function() { 
       el.trigger('focus'); 
      }); 
     } 
    } 
    }; 
}) 

Ở đây có đầy đủ đoạn với giải pháp: http://jsfiddle.net/cPVDn/53/

1

Xem plugin tốt từ AngularStrap sẽ giải quyết vấn đề của bạn: link.

JS

.config(function($datepickerProvider) { 
    angular.extend($datepickerProvider.defaults, { 
    dateFormat: 'dd/MM/yyyy', 
    startWeek: 1 
    }); 
}) 

HTML

<input type="text" 
    class="form-control" 
    ng-model="selectedDateAsNumber" 
    data-date-format="yyyy-MM-dd" 
    data-date-type="number" 
    data-min-date="02/10/86" 
    data-max-date="today" 
    data-autoclose="1" 
    name="date2" 
    bs-datepicker> 

Xem Demo Plunker


Và đây được họ họ main page

+0

Tôi đã sử dụng góc khởi động trong dự án của mình và tôi không muốn kết hợp hai thứ này, nhưng sau đề xuất của bạn, tôi đã xem xét thành các nguồn và đưa ra giải pháp. Cảm ơn bạn! – michal

+0

Câu trả lời này không phải là tốt nhất. Câu trả lời trong câu hỏi UPDATE là câu trả lời hay nhất. Nó chỉ đơn giản sử dụng một chỉ thị. Tôi nghĩ sẽ tốt hơn nếu có giải pháp đó ở đây trong trang này. – dxvargas

+0

@hiphip phải, anh ấy đã đăng bản chỉnh sửa 10 tháng sau đó.Nhưng anh ta vẫn sử dụng plugin 'bootstrap-datepicker' –

0

Trong ví dụ ở bootstrap documentation làm điều đó phần nào như thế này:

<div class="input-append date datepicker"> 
    <input type="text" is-open="opened" datepicker-popup ng-model="date"/> 
    <span class="add-on" ng-click="openAction($e)" ><i class="icon-calendar"></i></span> 
</div> 

Và sau đó trong bộ điều khiển:

$scope.openAction = function ($event) { 

    $event.preventDefault(); 
    $event.stopPropagation(); 

    $scope.opened = !$scope.opened; 
} 
Các vấn đề liên quan