में किसी सरणी के किसी विशिष्ट आइटम के लिए डेटा बाध्यकारी जावास्क्रिप्ट ऑब्जेक्ट्स की एक सरणी वाली डेटा संरचना को देखते हुए, मैं उस सरणी से कोणीय का उपयोग करके इनपुट फ़ील्ड में एक निश्चित प्रविष्टि कैसे बांध सकता हूं?कोणीय
डेटा संरचना इस तरह दिखता है:
$scope.data = {
name: 'Foo Bar',
fields: [
{field: "F1", value: "1F"},
{field: "F2", value: "2F"},
{field: "F3", value: "3F"}
]
};
fields
सरणी दोनों एक field
विशेषता है और एक value
विशेषता होने प्रत्येक प्रविष्टि के साथ, यह देखते हुए संरचना के कई उदाहरण हैं।
मैं कैसे field
F1
के साथ सरणी प्रविष्टि के value
क्षेत्र विशेषता के लिए एक input
नियंत्रण बाध्य कर सकते हैं?
<input ng-model="???"/>
मुझे पता है कि मैं एक ng-repeat
का उपयोग कर सभी क्षेत्रों के लिए बाध्य कर सकता है, लेकिन वह नहीं है जो मैं चाहता। उपरोक्त डेटा फ़ील्ड की एक बड़ी सूची से सिर्फ एक उदाहरण है, जहां मैं केवल स्क्रीन पर नियंत्रण के लिए फ़ील्ड के प्री-डिफ़ाइंड सबसेट को बांधना चाहता हूं। सबसेट सरणी प्रविष्टियों में विशेषताओं पर आधारित नहीं है, लेकिन पृष्ठ के डिज़ाइन समय पर जाना जाता है।
तो उपर्युक्त उदाहरण के लिए, मैं पृष्ठ पर एक इनपुट में F1 को बाध्य करने का प्रयास करता हूं, और F2 को किसी अन्य पर। एफ 3 नियंत्रण के लिए बाध्य नहीं होगा।
मैंने उदाहरण देखे हैं जहां ng-model
में फ़ंक्शन का उपयोग किया गया था, लेकिन यह कोणीय 1.1.0 के साथ काम नहीं कर रहा है।
क्या इनपुट फ़ील्ड को एक विशिष्ट सरणी प्रविष्टि में बांधने का एक और चालाक तरीका है?
यहाँ एक बेला एक उदाहरण है कि है, लेकिन क्योंकि यह ng-model
विशेषता में समारोह का उपयोग करने के कोशिश कर रहा है काम नहीं करता: http://jsfiddle.net/nwinkler/cbnAU/4/
अद्यतन
नीचे सिफारिश के आधार पर, इस यह क्या करना चाहिए है देखो की तरह: http://jsfiddle.net/nwinkler/cbnAU/7/
हां, बेहतर संरचना में सरणी को पुनर्गठित करना मैंने जो भी सोचा था, वह है। मुझे यकीन नहीं है कि यह संभव है, क्योंकि हमें बैकएंड सेवा से JSON प्राप्त होता है। मुझे उनसे पूछना होगा कि क्या वे संरचना बदलते हैं। – nwinkler
@nwinkler यदि आप अंतर्निहित मॉडल को अक्सर बदलते हैं तो यह किसी भी तरह से इसे बांधने से पहले सरणी (आपके नियंत्रक के भीतर) को प्रीप्रोसेस करने के लिए समझ में आता है क्योंकि आपकी वर्तमान संरचना के साथ आपको हर बार जब आप एक नया मॉडल बांधते हैं तो आपको सरणी को खोजना होगा। ऑब्जेक्ट के माध्यम से एक बार लूप को पुनर्गठित करने के साथ और आप कर चुके हैं। यदि वे आपके लिए एपीआई बदलते हैं तो यह भी बेहतर है :) –
इस उत्तर को स्वीकार किया क्योंकि मुझे लगता है कि ऐसा करने का सही तरीका है। हम डेटा के प्रारूप को बदलने और आपके द्वारा वर्णित की तरह इसका उपयोग करने में देखेंगे। – nwinkler