Wednesday 15 May 2013

javascript - data-bind didnt work on view model -


यह एक सरल दृश्य मॉडल है

  var केक = समारोह (आईडी, नाम, मूल्य , छवि) {this.id = ko.observable (आईडी); this.name = ko.observable (नाम); this.price = ko.observable (कीमत); this.image = ko.observable (छवि); }; Var पुरानाकैक्स = को.ओस्सेवेबल ऐरे ([नया केक ('एचएसजे 525', 'के नाम का केक', 54.30, 'http: //placehold.it/160x100'), नया केक ('एचएसजे 526', 'अन्य केक', 64.30 , 'Http: //placehold.it/160x100'), नया केक ('एचएसजे 527', 'एक अन्य रोक्फोर्ट', 84.30, 'http: //placehold.it/160x100'), नया केक ('एचएसजे 528', 'और द लस्ट ', 44.30,' http: //placehold.it/160x100 '),]) var viewModel = function () {var self = this; self.cakeBox = oldCakes; } Window.view_model = नया दृश्यमॉडल (); ko.applyBindings (window.view_model);   

और यह HTML है

  div.span12 (डेटा-बाइंड = 'foreach: केकबॉक्स') div.row-fluid div.span4 span ( डेटा-बाइंड = 'टेक्स्ट: $ डेटाकॉकबॉक्स ()। नाम ()')   

और यह त्रुटि है

  अनचाहे त्रुटि: में असमर्थ पार्स बाइंडिंग संदेश: प्रकार एरर: ऑब्जेक्ट [ऑब्जेक्ट ऑब्जेक्ट] में 'केकबॉक्स' का कोई तरीका नहीं है; बाइंडिंग वैल्यू: टेक्स्ट: $ data.cakeBox ()। नाम ()   

क्यों ???

अपने HTML को मानते हुए कुछ इस तरह दिखता है:

  & lt; div डेटा-बाइंड = "foreach: cakebox" & gt; & Lt; span data-bind = "text: $ data.cakeBox ()। नाम ()" & gt; & lt; / span & gt; & Lt; / div & gt;   

तब आपकी समस्या दूसरे डेटा बाध्यकारी के साथ है। जब आप foreach बाध्यकारी करते हैं, तो उस ब्लॉक के सभी बाँधों को अग्रगमन में वर्तमान तत्व का संदर्भ मिलेगा इसलिए $ डेटा आपके सरणी में एक सदस्य को संदर्भित करता है।

यह कैसा दिखना चाहिए:

  & lt; span डेटा-बाइंड = "टेक्स्ट: नाम" & gt; & lt; / span & gt;   

क्योंकि नाम वर्तमान बाध्यकारी संदर्भ की एक संपत्ति है।

No comments:

Post a Comment