Knockout.JS Mapping返回一个空数组?

时间:2012-05-08 17:31:15

标签: javascript json knockout.js

在最后一天,我一直在摸不着头脑。希望有人能说清楚。我有一个简单的javascript对象 - 数据 - JSON.stringify(data)像这样返回它;

{
    "dataList": [
        {
            "Id": 0,
            "Name": "0",
        },
        {
            "Id": 1,
            "Name": "1",
        }
    ]
}

我也有一个非常简单的淘汰视图模型;

var viewModel = {
            dataList: ko.observableArray([])
        };

然后我按照doc站点进行简单的knockout.JS映射调用;

ko.mapping.fromJS(data, viewModel);

我希望我的viewModel现在有一个dataList成员(它确实),它是一个2的数组(它不是!)。相反,我得到一个空数组..我在映射中缺少什么?

1 个答案:

答案 0 :(得分:2)

您不需要在viewModel对象上定义属性;映射插件将为您创建它们。只需声明viewModel:

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

http://jsfiddle.net/vqaVT/

当您需要使用来自服务器的更新数据更新您的viewModel时,您只需拨打另一个电话ko.mapping.fromJS(data, viewModel)