簡體   English   中英

使用映射插件將JSON對象映射到敲除數組

[英]Mapping a JSON object to a knockout array using mapping plugin

function PanelViewVM() {
var self = this;

self.PanelName = ko.observable("Test");
self.PanelDetails = ko.observableArray([]),

self.SelectPanel = function () {

    $.ajax("/DPanel/FillIndex", {

        dataType: 'json',
        contentType: 'application/json',
        success: function (data) {

            ko.mapping.fromJS(data.PanelDetails, {}, self.PanelDetails);

        },
        error: function (data) {
            console.log(data);
        }
    });

};



self.SelectPanel();
};

ko.applyBindings(new PanelViewVM());

JSON ajax響應為:

{
"PanelDetails": [
    {
        "PanelID": 466,
        "Panel": "581ZDPAD30D",
        "PanelType": 2,
        "Source": "S63B",
        "Substation": "S63",
        "Bay": "615W",
        "Voltage": 480,
        "kVA": 630,
        "Utility": "N",
        "Train": "B",
        "Circuits": 12,
        "Status": "Existing/Re-fed/Re-tag",
        "Drawing": "IRAE-0326"
    }
],
"DPanelCcts": [
    {
        "PanCctID": 1442,
        "PanelID": 466,
        "cct": 1,
        "Base": 250,
        "POCID": null,
        "DateUpdated": null,
        "Assigned": ""
    },
    {
        "PanCctID": 1443,
        "PanelID": 466,
        "cct": 2,
        "Base": 400,
        "POCID": 38,
        "DateUpdated": "/Date(1427842800000)/",
        "Assigned": "EDT113-E04"
    }
] }

在地圖中,我試圖將PanelDetails對象返回到基因剔除數組。

然后從該數組中選擇Panel並綁定到strong標簽

    <p>
        Panel: <strong data-bind=" text: PanelDetails[0].Panel">

</strong>
    </p>

我認為我沒有正確傳遞給數組。 對於PanelDetails數組,它將只有一行數據。

我做了一個小提琴來測試。 如果您對Ajax數據的返回方式是正確的,那么您唯一需要做的就是更改綁定變量符號。

Panel: <strong data-bind=" text: PanelDetails()[0].Panel">

http://jsfiddle.net/jgm5zy0a/

暫無
暫無

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

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