2015-12-24 14 views
7

में मॉडल अद्यतन नहीं करता है जब मैं कीबोर्ड कुंजी दबाता हूं उदा। 0 और इसे खोने पर इसे स्वचालित रूप से 00:00 के रूप में नियंत्रित करने के लिए सेट किया गया है, लेकिन यह मॉडल मान को अपडेट नहीं करता है।Jquery Timepicker angularjs निर्देश

angular.module('test').directive('timePicker', [function() { 
return { 
    restrict: 'A', 
    require: 'ngModel', 
    scope: { 
    model: '=ngModel' 
    }, 
    link: function ($scope, element, attrs, ngModelCtrl) { 

    element.timepicker({'timeFormat' : 'H:i'}); 

    ////element.on('change', function() { 
    //// scope.$apply(function() { 
    //// scope.model = element.datepicker('getTime'); 
    //// }); 
    ////}); 


    ////$scope.$watch('model', function (newValues, oldValues, scope) { 
    //// console.log("Nothing here"); 
    ////});  
    } 
} 
}]); 



<input id="startTime" type="text" name="startTime" data-ng-model="vm.data.StartTime" time-picker /> 

मैं मॉडल की वजह से समय को सत्यापित करने में सक्षम नहीं हूं। टिप्पणी कोड मैंने मूल्य अद्यतन करने की कोशिश की है।

+0

क्या आपने मॉड्यूल को सही तरीके से परिभाषित किया है, क्योंकि मैं देख सकता हूं कि आपने मॉड्यूल सिंटैक्स का गेटटर उपयोग किया है। – Jai

+0

हां, यह काम कर रहा है जब मैं ड्रॉपडाउन से कोई मान चुनता हूं, केवल समस्या तब होती है जब उस समय स्वचालित रूप से मूल्य निर्धारित होता है मॉडल मान अद्यतन नहीं होता है। –

+0

मुझे लगता है कि आपके पास यह सही था, परिवर्तन पर तत्व के बाध्यकारी के साथ, हालांकि आपको "$ scope। $ लागू()" का उपयोग करना चाहिए (जैसा कि आप इसे फ़ंक्शन में इस तरह से गुजर रहे हैं) "गुंजाइश। $ लागू()"। Https://angular-ui.github.io/bootstrap/#/timepicker पर भी एक नज़र डालें :) – Teknotica

उत्तर

6

ऐसा इसलिए होता है क्योंकि टाइमपिकर इनपुट फ़ील्ड के मूल्य को बदल रहा है (शायद $("input").val("newval") का उपयोग करके) किसी भी घटना को ट्रिगर नहीं करता है जो पाचन चक्र शुरू करने के लिए कोणीय सुन रहा है।

प्रायः, मुझे angular-jquery-timepicker मिल सकता है जिसे आप उपयोग करना चाहते हैं। इसके स्रोत कोड को देखते हुए, ऐसा लगता है जैसे कि यह एक changeTime घटना के लिए सुन रहा है:

element.on('changeTime', function() { 
    $scope.$apply(function() { 
    $scope.model = element.val(); 
    }); 
}); 

changeTime घटना भी documented है (देखें "घटना उदाहरण")।

इस Plunkr में इसे आज़माएं। यह पता चला है कि change ईवेंट के लिए सुनना भी काम करता है।

+0

मुझे पहले से ही इस लाइब्रेरी को पता है, लेकिन मुझे यह जानने की ज़रूरत है कि मेरे कोड में क्या गलत है, ईवेंट को निकाल दिया गया है लेकिन लिंकर पैरामीटर उपलब्ध नहीं है यह। –

+0

आपका क्या मतलब है, वे इसमें पहुंच योग्य नहीं हैं? आपको क्या त्रुटि संदेश प्राप्त हो रहा है? – cdauth

+0

इसके अलावा, यह 'स्कोप' के बजाय '$ स्कोप 'होना चाहिए, मैंने अभी देखा है कि आपका पैरामीटर कहलाता है। – cdauth

संबंधित मुद्दे