नॉकआउट में $ माता-पिता का प्रवेश सूचकांक


87

नॉकआउट.जेएस 2.1.0 में, फॉर्च बाइंडिंग का उपयोग करके एक टेम्पलेट में, आप वर्तमान आइटम के इंडेक्स तक पहुंच सकते हैं, हालांकि $ इंडेक्स () फ़ंक्शन। नेस्टेड फ़ॉर्वर्ड बाइंडिंग में, क्या टेम्पलेट से $ पेरेंट के इंडेक्स को एक्सेस करने का कोई तरीका है?

कहो कि मेरे पास इस तरह से एक डेटा संरचना है:

var application = {
  topModel: [
    {
      {subModel: [{'foo':'foo'}, { 'bar':'bar'}]}, // this has top:0 and sub:0
      {subModel: [{'foo2':'foo2'}, { 'bar2':'bar2'}]} // this has top:0 and sub:1
    },
    {
      {subModel: [{'foo':'foo'}, { 'bar':'bar'}]} // this is top:1 sub:0
    },
    {
      {subModel: [{'foo':'foo'}, { 'bar':'bar'}]} // this is top:2 sub:0
      {subModel: [{'foo':'foo'}, { 'bar':'bar'}]} // this is top:2 sub:1
    },
    ...
    ]};

इसके साथ, मैं सूचकांकों का उपयोग करते हुए प्रत्येक मॉडल के लिए पथ प्रिंट करना चाहता हूं: [topModel-index subModel-index], ताकि आउटपुट कुछ इस तरह हो जाए:

[0 0]
[0 1]
[1 0]
[2 0]
[2 1]
...

मैंने फॉरच का उपयोग करके मॉडल को बाध्य किया है, लेकिन मैं यह पता नहीं लगा सकता कि सबमॉडल के संदर्भ में टॉपमॉडल के सूचकांक का उपयोग कैसे किया जाए। निम्नलिखित उदाहरण एक दृष्टिकोण दिखाता है जो मैंने कोशिश की है, लेकिन यह काम नहीं करता है, क्योंकि मैं यह पता नहीं लगा सकता कि $ माता-पिता रेफरल के सूचकांक का उपयोग कैसे करें।

<!--ko foreach: topModel -->
<!--ko foreach: subModel -->
  [<span data-bind="text: $parent.index()"></span>
  <span data-bind="text: $index()"></span>]
<!--/ko-->
<!--/ko-->

बाहर प्रिंट करना चाहिए: 0 1, 0 2, 1 0, 1 1, 1 2, 2 0, 2 1, ...


आप वास्तव ()में $indexवहाँ के बाद की जरूरत नहीं है ।
मैथ्यू Schinckel

इसके अलावा, यदि आप जो कुछ भी है, उसके साथ एक jsfiddle बना सकते हैं, जिससे यह आसान हो जाएगा। या अपना डेटा स्रोत पोस्ट करें और मॉडल कोड देखें।
मैथ्यू Schinckel

अभी के लिए, मैं केवल प्रोटोटाइप पर काम कर रहा हूं, इसलिए मेरे पास दिए गए उदाहरण से अधिक नहीं है। मैं अन्य दृष्टिकोणों का उपयोग करते हुए सुझाव के लिए खुला हूं, हालांकि।
जोर्जेन

शायद वर्णन करें कि आप क्या करने की कोशिश कर रहे हैं, बजाय कैसे । एक अलग दृष्टिकोण हो सकता है।
मैथ्यू Schinckel

धन्यवाद। मैंने अपना प्रश्न बदल दिया, और उम्मीद है कि अब यह अधिक स्पष्ट है?
जोर्जेन

जवाबों:


185

अभिभावक वस्तु उपयोग के सूचकांक तक पहुँचने के लिए

$parentContext.$index()

बजाय

$parent.index()

धन्यवाद। बस उम्र बिताने की कोशिश कर रहा है कि खोजने के लिए!
डेविडहाइगो

14
हालांकि, मस्तिष्कहीनता के नाम पर स्पष्ट रूप से स्पष्ट होने के लिए, आपको अभी भी $parentContext.$index()पारेंस के साथ रहना होगा । ; ^) $ पैरेंटकोटेक्स्ट पर थोड़ा और यहाँ , fwiw
रफिन

3
धन्यवाद - निश्चित रूप से ध्यान देने योग्य है, एक समग्र मूल्य के संदर्भ में आपको () को जोड़ने की आवश्यकता होगी, हालांकि यदि आप एक तत्व को $ पेरेंटेनेक्स्ट के लिए बाध्य कर रहे हैं। $ इंडेक्स सवाल के अनुसार आपको इसकी आवश्यकता नहीं है।
ब्रेट स्मिथ

5
कोष्ठक की आवश्यकता है$parentContext.$index()
जैदर

4
बस उस $parentContext.$parentContext.$index()काम को जोड़ना चाहता था जैसा कि आप भी उम्मीद करते हैं।
रयान व्हीले

3

सबसे आसान तरीका है कि आप क्रोम के लिए "नॉकआउट संदर्भ" डाउनलोड कर सकते हैं। इससे आपको पता चलता है कि डेटा किस तत्व के लिए बाध्य है और आपको उस विशेष बाउंड तत्व को उपलब्ध फ़ंक्शन / चर भी देखने देता है। यह इन जैसी स्थितियों के लिए एक अद्भुत उपकरण है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.