[英]I am getting a JSON/Javascript object because I can see it in my console, but how do I get it to serialize and make my data bind to my Ui elements?
I am using knockout. 我正在使用淘汰赛。 I am sending dynamic data from my MySql server to a wcf service and then getting my knockout function to display the data in divs.
我正在将动态数据从MySql服务器发送到wcf服务,然后获取敲除函数以divs显示数据。 I will post the code below so you can see what I'm talking about.
我将在下面发布代码,以便您可以了解我在说什么。
My knockout model: 我的淘汰赛模型:
function machineDataModel(item) {
this.mach_no = ko.observable(item.mach_no),
this.VAR1 = ko.observable(item.VAR1),
this.VAR2 = ko.observable(item.VAR2),
this.VAR3 = ko.observable(item.VAR3),
this.VAR4 = ko.observable(item.VAR4)
};
Knockout ViewModel: 剔除ViewModel:
$(document).ready(function () {
var machineDataViewModel = {
machineDataItems: ko.observableArray([]),
loadMachineDataItems: function () {
alert('Method 1: Start');
$.getJSON("http://localhost/JsonRestful/Service1.svc/GetMachineData", function (data) {
alert(data);
console.log(data);
//machineDataViewModel.machineDataItems.removeAll();
//alert('Everything Removed')
alert('Method 2: Start');
$.each(data, function (index, item) {
machineDataViewModel.machineDataItems.push(new machineDataModel(item));
});
});
}
};
ko.applyBindings(machineDataViewModel);
machineDataViewModel.loadMachineDataItems();
//setInterval( loadMachineDataItems, 10000 );
});
I know everything works fine till I get to the alert Method 2: Start. 我知道一切正常,直到我收到警报。方法2:开始。 The each method doesn't iterate over the array like I want it to.
每个方法都不会像我想要的那样遍历数组。 I get an object in my console where I requested it be posted in the log.
我在控制台中收到一个对象,该对象要求将其发布到日志中。
Object { GetMachineDataResult=[20]}
My View is: 我的看法是:
<div id="knockout" data-bind="foreach: machineDataItems">
<p id="machineNum" data-bind="text: mach_no"></p>
<div id="Completed" data-bind="text: VAR1"></div>
<div id="Style" data-bind="text: VAR2"></div>
<div id="PUPC" data-bind="text: VAR3"></div>
<div id="RPM" data-bind="text: VAR4"></div>
</div>
From the image of your JSON response you posted in a comment, it looks like your JSON object looks something like this: 从您在评论中发布的JSON响应的图像来看,您的JSON对象看起来像这样:
{
"GetMachineDataResult": [ // bunch of items here ]
}
Note that the array isn't the top level object, it's a property called GetMachineDateResult
. 注意,该数组不是顶级对象,而是一个名为
GetMachineDateResult
的属性。 So instead of: 所以代替:
$.each(data, function (index, item) { //...
You need: 你需要:
$.each(data.GetMachineDateResult, function (index, item) { //...
Because data
is an object and data.getMachineDateResult
is the array you want. 因为
data
是一个对象,而data.getMachineDateResult
是您想要的数组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.