मान लीजिए मैं इस तरह knockout.js टेम्पलेट है:knockout.js टेम्पलेट्स में अद्वितीय आईडी
<script type="text/html" id="mytemplate">
<label for="inputId">Label for input</label>
<input type="text" id="inputId" data-bind="value: inputValue"/>
</script>
अगर मैं (पेज मैं एक ही आईडी के साथ कई जानकारी के साथ अंत पर कई स्थानों में इस टेम्पलेट प्रस्तुत करना और के साथ मान के लिए कई लेबल), जिनके खराब परिणाम हैं। विशेष रूप से, आईडी पर निर्भर सभी कोड ठीक से काम नहीं कर सकते हैं (मेरे मामले में मैं jquery.infieldlabel प्लगइन का उपयोग करता हूं जो एक ही आईडी के साथ कई इनपुट द्वारा भ्रमित हो जाता है)। जिस तरह से मैं अब इस समस्या का समाधान मैं मॉडल है कि मैं टेम्पलेट के लिए बाध्य करने के लिए अद्वितीय आईडी गुण जोड़ने है:
<script type="text/html" id="mytemplate">
<label data-bind="attr: {for: id}>Label for input</label>
<input type="text" data-bind="attr: {id: id}, value: inputValue"/>
</script>
यह काम करता है, लेकिन यह बहुत ही सुंदर के बाद से मैं अपने मॉडल में इस कृत्रिम आईडी गुण है की जरूरत नहीं है इसका उपयोग किसी और चीज़ के लिए नहीं किया जाता है। मुझे आश्चर्य है कि यहां एक बेहतर समाधान है या नहीं।
मैं दूसरा हूं। लेकिन क्या मैं परेशान हो सकता हूं और समस्या के थोड़ा और जटिल संस्करण पर सलाह मांग सकता हूं - जहां आपके पास रेडियो की एक जोड़ी है उदा। लेबल के रूप में "हां" और "नहीं", प्रत्येक एक एकल बूलियन को देखने योग्य, उदाहरण के लिए "सक्रिय है"। फिलहाल सभी 4 तत्व - 2 रेडियो और 2 लेबल - सभी एक ही आईडी प्राप्त करते हैं। रेडियो के जोड़े कई बार प्रकट होते हैं, इसलिए मैं प्रत्येक जोड़ी के लिए नॉकआउट बाध्यकारी के साथ एक अद्वितीय नाम विशेषता उत्पन्न कर रहा हूं, इसलिए मुझे वर्तमान जोड़ी के उस विशिष्ट नाम को आईडी में उपसर्ग करने में सक्षम होना चाहिए। –
अद्वितीय आईडी के लिए आप डेटा-बाइंड = "attr: {for: 'status_' + $ index}" और डेटा-बाइंड = "attr: {id: 'status_' + $ index}" का भी उपयोग कर सकते हैं – viperguynaz
आप भी इसका उपयोग कर सकते हैं डेटा-बाइंड = "attr: {for: 'status_' + $ index}" और डेटा-बाइंड = "attr: {id: 'status_' + $ index}" अद्वितीय आईडी के लिए। मौजूदा इंडेक्स आइटम के शून्य-आधारित इंडेक्स को संदर्भित करने के लिए $ अनुक्रमणिका। $ इंडेक्स एक अवलोकन योग्य है और जब भी आइटम की अनुक्रमणिका बदलती है (उदा।, यदि आइटम सरणी से जोड़ा या हटा दिया जाता है) अद्यतन किया जाता है। – viperguynaz