2013-04-15 6 views
14

का उपयोग कर रहा सेटअप करने के लिए कोशिश कर रहा हूँ एक typeahead का उपयोग कर AngularJS & UI Bootstrap तो जैसे:Typeahead ऑब्जेक्ट नाम

.html

<input type="text" ng-model="selectedStuff" typeahead="stuff.name for stuff in stuffs | filter:$viewValue"/> 

<span>{{selectedStuff.name}}</span> 
<span>{{selectedStuff.desc}}</span> 

.js

$scope.stuffs= [ 
       { 
       "name":"thing1", 
       "desc":"this is the first thing" 
       }, 
       { 
       "name":"thing2", 
       "desc":"this is the second thing" 
       } 
       ] 

वर्तमान में, मैं किया गया है चयनित नाम के साथ मॉडल को अपडेट करने में सक्षम है, लेकिन मेरा लक्ष्य पूरे ऑब्जेक्ट को typeahead के माध्यम से पास करना है। क्या केवल इनपुट का उपयोग करके ऐसा करने का एक साफ तरीका है?

उत्तर

26

ज़रूर बात :-)

http://angular-ui.github.io/bootstrap/ से Typeahead निर्देश AngularJS ng-options के लिए select directive रूप में एक ही सुपर लचीला सिंटैक्स का उपयोग करता। तो अगर आप लिख सकते हैं:

typeahead="stuff as stuff.name for stuff in stuffs | filter:$viewValue" 

यहाँ एक काम कर अंगुलियों से छूना है: http://plnkr.co/edit/5kGZkNPZ7rIFfb4Rvxej?p=preview

+3

कमाल! जैसा कि मैं उम्मीद कर रहा था उतना ही सरल और भयानक। धन्यवाद! – Jesse

+1

मैं इनपुट बॉक्स में '[ऑब्जेक्ट ऑब्जेक्ट]' देख रहा हूं क्योंकि मुझे इसे नियंत्रक में उपयोग करने के लिए इसे नियंत्रक में तुरंत चालू करना होगा। अगर मैं इसे तुरंत चालू नहीं करता हूं, और यह पहले अपरिभाषित है, तो यह ठीक दिखाता है। यह मेरी दुर्दशा है। कोई विचार? – morgs32

+0

मुझे एक ही त्रुटि है .. cljecting के बाद वस्तु वस्तु प्रकट होती है, morgs32 क्या आपने इसे ठीक करने का प्रबंधन किया था? –

0

मैं एक ही समस्या थी। मैं द्वारा

typeahead="country.name for country in countryList | filter:$viewValue | limitTo:8" 

यहाँ इसे हल है countryList देश वस्तु की एक सूची है। नाम देश वस्तु की संपत्ति में से एक है। मेरे लिए यह ठीक काम कर रहा है।

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