尝试使用映射将数组从JSON映射到knockout

时间:2014-06-18 21:41:09

标签: javascript json knockout-2.0 knockout-mapping-plugin

嗨,我有一个像这样的JSON数组

[{
    "id": "537901a53513fa3374bec718",
    "images": [],
    "itemImage": "img/3.jpg",
    "createdDate": "5/18/2014 6:53:25 PM",
    "location": [
        -2.057802,
        52.609711
    ]
},
{
    "id": "537901a53513fa3374bec710",
    "images": [
        "img/17.jpg"
    ],
    "itemImage": "img/1.jpg",
    "createdDate": "5/18/2014 6:53:25 PM",
    "location": [
        -2.062251,
        52.612397
    ]
}]

我正在尝试使用ko.mapping.fromJSON / JS,但我不停地叹了口气:(

  var viewModel = {};

在我的Ajax成功函数中,

  viewModel.model = ko.mapping.fromJSON(data);
  ko.applyBindings(viewModel);

HTML

   <div data-bind=" foreach: model">
       <div data-bind="text: body"></div>
   </div>            

我已经尝试过这篇由John Papa回答的帖子,但我认为我的阵列是不同的。 Knockout JS mapping plugin confusion 我可以手动完成,但无聊手动构建视图模型:)。

还尝试了这个并且进一步混淆了Can't map JSON object to ViewModel (knockout js)

任何善良的灵魂都能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

您需要做的就是:

var viewModel = ko.mapping.fromJS(data);
ko.applyBindings(viewModel);

你按如下方式循环它们:

<table class="table table-striped">
        <tbody data-bind="foreach: $data">
            <tr>

                <td data-bind="text: id"></td>
            </tr>
        </tbody>
    </table>

参见此处的示例:

http://jsfiddle.net/wr5W7/5/