मैं एक पृष्ठ है कि मैं में KnockoutJS उपयोग करना चाहते हैं एक ASP.NET MVC3 app से सर्वर किया जा रहा है पर काम कर रहा हूँ से कनेक्ट हो रहा knockoutjs।एक पहले से ही आबादी वाले DOM एलीमेंट
देखें पर मैं पारित कर दिया हो रही एक आबादी वाला मॉडल (जिसे मैं एक नॉकआउटजेएस व्यू मॉडेल में परिवर्तित कर रहा हूं) और मैं कुछ डोम सर्वर-साइड बनाना चाहता हूं। यह तार्किक लगता है क्योंकि मेरे पास प्रारंभिक एचटीएमएल उत्पन्न करने के लिए पहले से ही ऑब्जेक्ट्स हैं और यह उपयोगकर्ताओं को बेहतर अनुभव प्रदान करेगा क्योंकि पेज लोड और डीओएम आबादी के बीच देरी नहीं होगी (इसका मतलब यह भी है कि मेरे पास गैर- -जवास्क्रिप्ट क्लाइंट)।
कुछ शोध करने के बाद मैं यह सोचते हैं रहा हूँ मैं एक कस्टम बनाने की जरूरत bindingHandler
तो मैं इस बनाया:
ko.bindingHandlers.serverForEach = {
init: function() { /* no-op */ },
update: function() {
//call off to the built in loop handler
}
};
तो मेरी सोच था मैं (हैंडलर जो init
चरण में कुछ नहीं करता है बनाने के रूप में डोम पहले से ही आबादी वाला है) और update
चरण में मैं केवल नया मान डालेगा। मैं अंतर्निहित टेम्पलेटिंग का लाभ उठाना चाहता हूं, इसलिए यह एक सामान्य समाधान भी हो सकता है।
समस्या यह है कि इस परिदृश्य में सब कुछ अलग हो जाता है। यदि init
कुछ भी नहीं करता है तो update
विफल रहता है क्योंकि अंतिम तर्क के रूप में आने वाले बाध्यकारी कॉन्टेक्स्ट गलत लगता है, और यदि मैं init शामिल करता हूं तो यह मौजूदा HTML को नष्ट कर देगा।
किसी ने भी इस बात की कोशिश की/मुझे पता है कि मुझे इस परिदृश्य का समर्थन करने के लिए क्या करना चाहिए या क्या आप इसे अभी भी हटा सकते हैं/कर सकते हैं?
इसके अलावा, मैं नॉकआउट HTML से सर्वर जेनरेट किए गए सर्वर के लिए एक अलग DOM तत्व नहीं चाहता हूं।