Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用映射插件将JSON对象映射到敲除数组_Javascript_Jquery_Knockout.js - Fatal编程技术网

Javascript 使用映射插件将JSON对象映射到敲除数组

Javascript 使用映射插件将JSON对象映射到敲除数组,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,JSON ajax响应是: function PanelViewVM() { var self = this; self.PanelName = ko.observable("Test"); self.PanelDetails = ko.observableArray([]), self.SelectPanel = function () { $.ajax("/DPanel/FillIndex", { dataType: 'json', conte

JSON ajax响应是:

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());
在映射中,我试图将PanelDetails对象返回到敲除数组

然后从该数组中选择Panel并绑定到强标记

{
"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数组,它只有一行数据。

我做了一个测试。如果您对Ajax数据如何返回的看法正确,那么您需要做的唯一一件事就是更改绑定变量表示法

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

</strong>
    </p>
Panel:

PanelDetails是一个可观察的工具。在编制索引之前,您需要使用函数表示法:
这似乎不起作用。我将数据绑定到数组
self.PanelDetails=ko.observearray([])的方式可能有问题。
语句
ko.mapping.fromJS(data.PanelDetails,{},self.PanelDetails)中的数据绑定是否正确?@RoyJ说得对。这是小提琴。如果你在找别的东西,请告诉你。我现在有另一个问题。当我绑定到DOM中的第二个元素时,它只绑定数组中的第一个元素<代码>面板:源:子站:间隔:
在您的小提琴中似乎可以正常工作,但在我的环境中却不行。@user1781272应该可以。除此之外,我真的建议遵循更好的方法创建
映射
,以后不要在视图中使用索引。干杯
Panel: <strong data-bind=" text: PanelDetails()[0].Panel">