2013-02-05 16 views
6

मैं चयनित विकल्प वस्तुknockoutjs कैसे चयनित विकल्प प्राप्त करने के लिए arrayObject

<select data-bind="options: availableCountries, 
         value: selectedCountry, event: { select: onSelect}"></select> 


<script type="text/javascript"> 
    // Constructor for an object with two properties 
    var Country = function(name, population) { 
     this.countryName = name; 
     this.countryPopulation = population; 
    };  

    var viewModel = { 
     availableCountries : ko.observableArray([ 
      new Country("UK", 65000000), 
      new Country("USA", 320000000), 
      new Country("Sweden", 29000000) 
     ]), 
     selectedCountry : ko.observable(), // Nothing selected by default 
     onSelect: function(){ 
       console.log(viewModel.selectedCountry) 
       // it is showing just an country name and what i what is whole object 
       // e.g. { "UK", 65000000 } // that is selected option in selected box 

     } 

    }; 
</script> 
+0

क्या आप अपना असली कोड शायद जेएसएफडल में पोस्ट कर सकते हैं? क्योंकि आपने जो दिखाया है, उसे देखना चाहिए: http://jsfiddle.net/Q7A76/ – nemesv

+0

http://jsfiddle.net/9MKce/3/ –

+1

बस 'विकल्प वैल्यू:' name'' को हटाएं और यह ठीक काम करेगा: http : //jsfiddle.net/9MKce/4/ – nemesv

उत्तर

16

आप नियंत्रण करने के लिए चयन घटना जोड़ने के लिए की जरूरत नहीं है प्राप्त करना चाहते हैं। optionsCaption जोड़ने के लिए आपके पास

viewModel.selectedCountry.subscribe(function (data) { 
     console.log(data) 
    }); 

आप किसी भी देश डिफ़ॉल्ट रूप से चयनित नहीं करना चाहते हैं data-bind के लिए बाध्य: अधिक कारगर तरीका selectedCountry परिवर्तन पर सदस्यता के लिए है

<select data-bind="options: availableCountries, 
         optionsText: 'countryName', 
         value: selectedCountry, 
         optionsCaption: 'Select...'"></select> 

यहाँ काम कर रहा बेला है : http://jsfiddle.net/vyshniakov/tuMta/1/

+0

console.log (डेटा) // डंप केवल स्ट्रिंग चयनित मूल्य और मैं सहयोगी डेटा सरणी –

+2

चाहता हूं यह केवल एक स्ट्रिंग नहीं लौटाता है, यह सरणी के चयनित तत्व (यानी ऑब्जेक्ट {countryName = "UK", countryPopulation = 65000000} देता है)। –

+1

विकल्पों के कारण आपको seleceted काउंटर में केवल एक स्ट्रिंग मिलती है Value: 'name'। बाध्यकारी से इसे हटा दें। –

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