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