2013-10-20 3 views
5

के लिए बूटस्ट्रैप डेटपिकर निर्देश मैंने एक साधारण डेटपिकर निर्देश लिखा है।angularjs

appDirective.directive('datePicker', function() { 
    return { 
     restrict: 'E', 
     require: ['ngModel'], 
     scope: { 
      ngModel: '=' 
     }, 
     replace: true, 
     template: 
      '<div class="input-group">'  + 
        '<input type="text" class="form-control" ngModel required>' + 
        '<span class="input-group-addon"><i class="glyphicon glyphicon-calendar"></i></span>' + 
      '</div>' , 
     link: function(scope, element, attrs) { 
      var input = element.find('input'); 
      var nowTemp = new Date(); 
      var now = new Date(nowTemp.getFullYear(), nowTemp.getMonth(), nowTemp.getDate(),0,0,0,0); 
      console.log(now); 
      console.log(nowTemp); 

      input.datepicker({ 
       format: "yyyy-mm-dd", 
       onRender: function(date) { 
        return date.valueOf() < now.valueOf() ? 'disabled' : ''; 
       } 
      }); 

      element.bind('blur keyup change', function() { 
       scope.ngModel = input.val(); 
       console.info('date-picker event', input.val(), scope.ngModel); 
      }); 
     } 
    } 
}); 

इस datepicker चलाता है अगर मैं html में <date-picker></date-picker> का उपयोग: यहाँ कोड है।

हालांकि उपर्युक्त निर्देश में onRender के लिए कॉलबैक काम नहीं करता है। मैं उसी उदाहरण का उपयोग कर रहा हूं जैसे Disable bootstrap dates

मैं यहां क्या गलत कर रहा हूं?

धन्यवाद :)

उत्तर

0

onRender समारोह एक कॉलबैक, इसकी एक घटना है कि निकाल दिया जाता है नहीं है। उदाहरण वे डॉक्स आप संदर्भित में उपयोग करते हैं:

$('#dp5').datepicker() 
    .on('changeDate', function(ev){ 
    if (ev.date.valueOf() < startDate.valueOf()){ 
     .... 
    } 
}); 

तो तुम एक घटना श्रोता जोड़ने की जानी चाहिए, न कि एक कॉलबैक फ़ंक्शन की आपूर्ति। कुछ इस तरह है:

input.datepicker() 
    .on('onRender', function(ev, date){ 
     return date.valueOf() < now.valueOf() ? 'disabled' : ''; 
}); 

डॉक्स वास्तव में क्या 'onRender' घटना के हिस्से के रूप के साथ पारित हो जाता है के रूप में एक छोटे से फजी रहे हैं, लेकिन मैं बहुत यकीन है कि काम करना चाहिए हूँ। यदि आप डेट ऑब्जेक्ट पास नहीं कर चुके हैं, तो आपको फ़ॉर्मेट करने से पहले इनपुट से इसे पढ़ना पड़ सकता है।

0

उस AngularJS v1.2 से ngAnimate का लाभ उठाता है Bootstrap3 के लिए एक काम कर देशी कार्यान्वयन AngularStrap में है +

तुम भी चेकआउट कर सकते हैं:

आप TwitterBootstrap जावास्क्रिप्ट पर भरोसा बनाए रखना चाहते हैं, वहाँ सिर्फ करता है कि पुराने संस्करण है: