2013-08-02 13 views
5

Angularjs kullanıyorum ve takvim simgesini tıkladıktan sonra bootstrap-datepicker'ımın gösterilmesini istiyorum.
Şimdi bu gibi: b-datepicker özel direktifiAçısal yönerge ile tıklanabilir bootstrap-datepicker simgesi

<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> 


olduğu yere. Metin alanına tıkladığınızda tarihçiyi gösterir, ancak ikon tıklatılmaz.
İşte kaynaklar: http://jsfiddle.net/cPVDn/

Amacım böyle olmak: Ben herhangi bir yardım takdir
http://jsfiddle.net/6QnMB/

GÜNCELLEME:
http://jsfiddle.net/cPVDn/53/

:
İşte çözüm var
+0

cevap olarak Düzenlemenizi gönderin:

İşte
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'); }); } } }; }) 

solüsyonu ile dolu pasajıdır:

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

biri gibi bir şey kullanabilirsiniz:

simge tıklama işi yerine yapmak –

cevap

1

Sorununuzu çözecek AngularStrap'in iyi eklentisine bakı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> 

Bkz Demo Plunker


Ve bu onların bootstrap documentation yılında örnekte main page

+0

Projemde açısal önyükleme kullandım ve bu ikisini karıştırmak istemiyorum ama önerinizden sonra baktım kaynaklara ve çözüm ile geldi. Teşekkür ederim! – michal

+0

Bu cevap en iyisi değil. Sorunun GÜNCELLEMESİ cevabı gerçek en iyi cevaptır. Sadece bir direktif kullanır. Bu sayfada bu çözümün olması güzel olurdu. – dxvargas

+0

@hiphip right, düzenlemeyi 10 ay sonra yayınladı.Ama yine de "bootstrap-datepicker" eklentisini kullanıyor –

0

onlar biraz böyle yapmak olduğunu:

<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> 

Sonra denetleyicisi: Ayrı cevap olarak çözüm post ediyorum

$scope.openAction = function ($event) { 

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

    $scope.opened = !$scope.opened; 
}