簡體   English   中英

我得到一個JSON / Javascript對象是因為可以在控制台中看到它,但是如何獲取它進行序列化並使數據綁定到Ui元素呢?

[英]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?

我正在使用淘汰賽。 我正在將動態數據從MySql服務器發送到wcf服務,然后獲取敲除函數以divs顯示數據。 我將在下面發布代碼,以便您可以了解我在說什么。

我的淘汰賽模型:

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)
};

剔除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 );
});

我知道一切正常,直到我收到警報。方法2:開始。 每個方法都不會像我想要的那樣遍歷數組。 我在控制台中收到一個對象,該對象要求將其發布到日志中。 Object { GetMachineDataResult=[20]}

我的看法是:

<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>

從您在評論中發布的JSON響應的圖像來看,您的JSON對象看起來像這樣:

{
    "GetMachineDataResult": [ // bunch of items here ]
}

注意,該數組不是頂級對象,而是一個名為GetMachineDateResult的屬性。 所以代替:

$.each(data, function (index, item) { //...

你需要:

$.each(data.GetMachineDateResult, function (index, item) { //...

因為data是一個對象,而data.getMachineDateResult是您想要的數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM