निम्नलिखित आपके लिए नौकरी करेगा। यह आदर्श नहीं है, लेकिन आपको काम करने के लिए एक मंच देना चाहिए।
सबसे पहले, नॉकआउट में सब कुछ एक दृश्य मॉडल से जुड़ा हुआ है। आप 3 divs की दृश्यता को नियंत्रित करने में सक्षम होना चाहते हैं, इसलिए यहां एक दृश्य मॉडल है जो उपयुक्त हो सकता है। जैसा कि मैंने कहा, सही नहीं :)
var buttonVm = new function(){
var self = this;
// Flags for visibility
// Set first to true to cover your "first should be open" req
self.button1Visible = ko.observable(true);
self.button2Visible = ko.observable(false);
self.button3Visible = ko.observable(false);
self.toggle1 = function(){
self.button1Visible(!self.button1Visible());
}
self.toggle2 = function(){
self.button2Visible(!self.button2Visible());
}
self.toggle3 = function(){
self.button3Visible(!self.button3Visible());
}
}
आप करने के लिए अपने मार्कअप को बदलना होगा: - यहाँ नोट करने के लिए
<!-- events here. When clicked call the referenced function -->
<button type="button" data-bind="click: toggle1">Button 1</button>
<button type="button" data-bind="click: toggle2">Button 2</button>
<button type="button" data-bind="click: toggle3">Button 3</button>
<!-- Visibility set here -->
<div data-bind="visible: button1Visible"> Div 1 </div>
<div data-bind="visible: button2Visible"> Div 2 </div>
<div data-bind="visible: button3Visible"> Div 3 </div>
चीजों की युगल। सबसे पहले, मैंने टाइप विशेषता जोड़ा है। इसके बिना, बटन का डिफ़ॉल्ट व्यवहार आपके फॉर्म को आजमाने और सबमिट करना होगा।
यह सब मिलाकर अप: -
// Create view model
var vm = new buttonVm();
ko.applyBindings(vm);
स्रोत
2012-07-19 13:28:57
उन बटन और इसी divs "UserOptionVM" की तरह एक उप दृश्य मॉडल के उदाहरण पर एक foreach पाश के माध्यम से प्रदान की गई हैं, या वे सिर्फ hardcoded कर रहे हैं? –
divs हार्डकोडेड हैं। – StackOverflow