2013-10-15 11 views
9

में पहला तत्व का चयन करता है मैं कोणीय v1.0.8IE10 लटकती

उपयोग कर रहा हूँ मैं एक का चयन किया है और मैं एनजी-विकल्प का उपयोग कर रहा निर्देश के साथ यह पॉप्युलेट करने के लिए मेरे नियंत्रक में घोषित डेटा की एक सरणी।

HTML स्निपेट

<body ng-controller="SelectCtrl"> 
    <select 
    ng-model="selected" 
    ng-options="o as o.caption for o in options" /> 
</body> 

कोड

angular.module('app', []) 
    .controller('SelectCtrl', ['$scope', function($scope) { 

    $scope.options = [ 
     { key: 1, caption: '1' }, 
     { key: 2, caption: '2' }, 
     { key: 3, caption: '3' }, 
     { key: 4, caption: '4' }, 
     { key: 5, caption: '5' } 
    ]; 

}]); 

झलकी क्रोम में, यदि आप मान लें कि विकल्प 3 तो, उम्मीद के रूप में, यह चयनित हो जाता जाने का चयन करें।

आईई 10 में, हालांकि, यदि आप विकल्प चुनते हैं तो विकल्प 1 चुना जाता है।

(http://plnkr.co/edit/T9bbEW?p=preview)

यह केवल तब होता जब कोई डिफ़ॉल्ट चयन नियंत्रक में सेट है। और "रिक्त" विकल्प के बाद किए गए बाद के चयन हटा दिए जाते हैं।

मुझे संदेह है कि यह संभवतः This issue का डुप्लिकेट हो सकता है लेकिन मुझे पूरी तरह से यकीन नहीं है। मैं वास्तव में यहां विकल्पों को गतिशील रूप से बदल नहीं रहा हूं, हालांकि मुझे लगता है कि शायद कोणीय है क्योंकि दोनों ब्राउज़रों में "रिक्त" विकल्प हटा दिया जा रहा है।

हालांकि मैं यह कार्यक्षमता चाहता हूं। मैं इस चयन के लिए डिफ़ॉल्ट मान प्रदान नहीं करना चाहता क्योंकि उपयोगकर्ता को मेरे लिए सक्रिय विकल्प बनाना है।

क्या कोई इस के लिए कामकाज और/या समाधान जानता है? अधिमानतः एक जो JQuery का उपयोग कर विकल्पों के साथ गड़बड़ नहीं करता है ...

उत्तर

8

कोणीय जोड़ों वाली रिक्त वस्तु में कुछ अजीब व्यवहार होता है। जिस तरह से हम उसके चारों ओर मिल गया है स्पष्ट रूप से नियंत्रक के माध्यम से हमारे अपने खाली आइटम जोड़ने और उसका चयन करने के लिए है:

angular.module('app', []).controller('SelectCtrl', ['$scope', function($scope) { 

    $scope.options = [ 
    { key: 0, caption: ' ' }, 
    { key: 1, caption: '1' }, 
    { key: 2, caption: '2' }, 
    { key: 3, caption: '3' }, 
    { key: 4, caption: '4' }, 
    { key: 5, caption: '5' } 
    ]; 

    $scope.selected = $scope.options[0] 

}]); 
+0

मुझे डर था कि मुझे ऐसा कुछ करना होगा। जानना अच्छा है कि मैं कम से कम ऐसा नहीं कर रहा हूं :) – ivarni

2

मैं चयन में डिफ़ॉल्ट विकल्प निम्न को जोड़कर इसे ठीक।

<option value="">Pls select</option> 

तो अपने चयन इस प्रकार दिखाई देगा:

<body ng-controller="SelectCtrl"> 
<select 
    ng-model="selected" 
    ng-options="o as o.caption for o in options"> 
    <option value="">Pls select</option> 
</select> 

मैं IE 11, 10, 9 में इस परीक्षण किया है और यह काम कर रहा है। कृपया मुझे बताएं कि यह आपके लिए भी काम करता है।

मुझे लगता है कि यह उपर्युक्त समाधान की तुलना में क्लीनर है।

+1

यह आईई 9 और आईई 10 में काम करता है यदि आपके डिफ़ॉल्ट विकल्प मूल्य को इंटरपोलेशन की आवश्यकता नहीं है (यानी "कृपया चुनें" काम करता है, "{{'कृपया चुनें'}} " नहीं करता)। सर सैंडलर का सरणी के लिए खाली विकल्प तैयार करने का समाधान इस मामले में नौकरी करना प्रतीत होता है। –

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