मैं समझता हूँ के रूप में, $index
उपलब्ध है अंदर एक foreach:
बंधन, वस्तु का सूचकांक दे ... मैं एक click:
बाध्यकारी उदा click:foo
, मुझे foo
के अंदर $index
तक पहुंचने की आवश्यकता है।
क्या कोई तरीका है?
मैं समझता हूँ के रूप में, $index
उपलब्ध है अंदर एक foreach:
बंधन, वस्तु का सूचकांक दे ... मैं एक click:
बाध्यकारी उदा click:foo
, मुझे foo
के अंदर $index
तक पहुंचने की आवश्यकता है।
क्या कोई तरीका है?
हाँ,
<input type="button" data-bind="click: function(data, event) { myClickHandler($index, data, event); }"/>
के बजाय अपने बंधन के भीतर एक समारोह के माध्यम से उसके चारों ओर हैकिंग, तो आप सिर्फ बाध्यकारी संदर्भ पाने की जरूरत है। जब तक आपके पास बाध्यकारी से जुड़े डीओएम तत्व तक पहुंच हो, तब तक आप ko.contextFor()
फ़ंक्शन का उपयोग करके बाध्यकारी संदर्भ और उसके सभी गुण प्राप्त कर सकते हैं।
आपके हैंडलर में प्राप्त होने वाली ईवेंट ऑब्जेक्ट आपको target
संपत्ति के माध्यम से नोड तक पहुंच प्रदान करती है। इसका उपयोग कर संदर्भ लें।
var viewModel = {
foo: function (data, event) {
var context = ko.contextFor(event.target);
// do stuff with context.$index()
}
};
चूंकि '$ इंडेक्स' एक अवलोकन योग्य है, इसलिए मुझे 'संदर्भ' $ इंडेक्स()' कोष्ठक के साथ करना था, क्योंकि अवलोकन योग्य नॉकआउट में कार्य हैं http://goo.gl/TIGYV1 – andrewcockerham
यह दुखद लेकिन सच है। – jessegavin
मैं क्लिक, ब्लर्स के लिए डिफ़ॉल्ट हैंडलर से सहमत हूं और इसलिए डेटा और ईवेंट की बजाय अधिक जानकारी पास करनी चाहिए। अगर मैं उपरोक्त त्वरित धोखाधड़ी समाधान में अच्छी तरह से फिट नहीं होता है तो मैं खुद को बाध्यकारी का उपयोग करता हूं। – ethermal