0

最后一天我一直在为此挠头。希望有人能阐明一下。我有一个简单的 javascript 对象——数据—— JSON.stringify(data) 像这样返回它;

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

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

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

然后我根据文档站点进行简单的 knockout.JS 映射调用;

ko.mapping.fromJS(data, viewModel);

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

4

1 回答 1

2

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

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

http://jsfiddle.net/vqaVT/

ko.mapping.fromJS(data, viewModel)当您需要使用来自服务器的更新数据更新您的 viewModel时,您只需要进行另一个调用。

于 2012-05-08T17:41:39.430 回答