यह पहेली मुझे लोड करें। यह कुछ छोटा होना चाहिए जो मैं नहीं देख रहा हूं। मैं अजाक्स कॉल के साथ नॉकआउट में एक बहुत ही सरल observableArray
लोड करने की कोशिश कर रहा हूं।.azax.js को देखकर अराजक() .ajax() से
जावास्क्रिप्ट
// we bind the array to the view model property with an empty array.
var data = [];
var viewModel = {
vendors: ko.observableArray(data)
};
ko.applyBindings(viewModel);
$(function() {
// on this click event, we popular the observable array
$('#load').click(function() {
// WORKS. Html is updated appropriately.
viewModel.vendors([{ "Id": "01" },{ "Id": "02" },{ "Id": "03" }]);
// DOES NOT WORK. Fiddler2 shows the same exact json string come back
// as in the example above, and the success function is being called.
$.ajax({
url: '/vendors/10',
dataType: 'json',
success: function (data) {
viewModel.vendors(data);
}
});
});
});
एचटीएमएल
<button id="load">Load</button>
<ul data-bind="template: { foreach: vendors }">
<li><span data-bind="text: Id"></span></li>
</ul>
प्रश्न: क्यों सफल ajax कॉल, जो data
चर मान से मेल खाता है करता बाइट के लिए बाइट मुश्किल टाइप मूल्य, एच ट्रिगर नहीं टीएमएल ताज़ा करें?
मेरी सैनिटी को सत्यापित करने के लिए धन्यवाद ... मैं फिर से नज़दीकी दिखूंगा। शायद एमवीसी थोड़ा रैपर या कुछ में चूसना ... –
ये। अनुरोध प्रतिक्रिया को फायरबग करें, सत्यापित करें कि आप जेसन प्राप्त कर रहे हैं और फिर सत्यापित करें कि jquery किसी ऑब्जेक्ट को पार्स कर रहा है। – madcapnmckay
यह निश्चित रूप से जेसन है ... सी # कोड 'रिटर्न जेसन (सूची, जेसन रीस्पॉन्सबैवियर.एलोवेट) जैसा दिखता है;' जहां 'सूची' एक आईसीओलेक्शन है, इसलिए मुझे पता है कि यह JSON है। उसमें जोड़ें, कि फिडलर 2 डेटा को अपने JSON दृश्य में सही तरीके से दिखाता है ... यह कहीं जावास्क्रिप्ट में है। जब मैं काम पर हूं तो मैं कल और अधिक जानकारी के साथ पोस्ट करूंगा –