2013-08-08 4 views
12

मैं Typeahead के यूआई बूटस्ट्रैप घटक उपयोग कर रहा हूँ और मैं अपने रूप को मान्य करने के चयन के लिए मजबूर करना चाहते हैं। यह इनपुट अमान्य स्थापित करने के लिए जब 'Typeahead संपादन योग्य' गलत पर सेट है कॉन्फ़िगर करने के लिए संभव है और उपयोगकर्ता एक "बुरा" मूल्य में प्रवेश करती है या मैं इस के लिए एक निर्देश लिखना चाहिए (लेकिन कैसे?)?सेट इनपुट अमान्य जब Typeahead संपादित नहीं किया जा झूठे

धन्यवाद

अद्यतन 2013-08-09 09:54: आप निम्नलिखित समाधान को क्या समझते हो:

 
var formValidatorsModule = angular.module('app.validator.formValidator', []); 

formValidatorsModule.directive('typeaheadForceSelection', function() { 
    return { 
     require : 'ngModel', 
     link : function(scope, elm, attrs, ctrl) { 
      ctrl.$parsers.push(function(viewValue) { 
       if (viewValue == undefined) { 
        ctrl.$setValidity('typeaheadForceSelection', false); 
       } else { 
        ctrl.$setValidity('typeaheadForceSelection', true); 
       } 
       return viewValue; 
      }); 
     } 
    }; 
}); 
+0

यह बग 2016 के रूप में तय किया गया है, lol ... plunker देखें: http://plnkr.co/edit/NtGXL7uPLYKCHESnZyxs?p=preview –

उत्तर

17

http://angular-ui.github.io/bootstrap/ से typeahead निर्देश पहले से ही मैच में बहुत आदानों सीमित करने के लिए समर्थन किया है (दूसरे शब्दों में, लोग टाइपहेड पॉपअप में मैचों के रूप में उपलब्ध मूल्यों को मॉडल से जोड़ सकते हैं)। आप इसे typeahead-editable='false' विशेषता सेट करके कर सकते हैं।

कृपया ध्यान दें कि इस विशेषता को false पर लोगों को अमान्य मानों में टाइप करने से रोकें। यह केवल यह सुनिश्चित करेगा कि एक संबंधित इनपुट अमान्य के रूप में चिह्नित किया गया है और प्रदत्त मान मॉडल के लिए बाध्य नहीं है।

+0

मुझे पता है कि संपादन करने योग्य सेट को गलत करने के लिए उपयोगकर्ता को कोई मान दर्ज करने की अनुमति मिलती है। यह सिर्फ मॉडल सेट नहीं है। जो मुझे अजीब लगता है वह यह है कि जब उपयोगकर्ता कोई चयन योग्य मान दर्ज नहीं करता है तो इनपुट फ़ील्ड "अमान्य" नहीं होता है। : [उदाहरण] (http://plnkr.co/edit/KbLOIRKHK5PdEIPvBCFV?p=preview)। या मैं कुछ समझ में नहीं ... –

+0

मैं अपने "समाधान" –

+0

@JulienMeyer मैं देख रहा हूँ अद्यतन - आप उसके अनुसार भी सेट वैधता झंडा चाहते हैं, है ना? यह उचित लगता है, इसके लिए https://github.com/angular-ui/bootstrap/issues?state=open –

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