Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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 Knockout.JS映射返回空数组?_Javascript_Json_Knockout.js - Fatal编程技术网

Javascript Knockout.JS映射返回空数组?

Javascript Knockout.JS映射返回空数组?,javascript,json,knockout.js,Javascript,Json,Knockout.js,最后一天我一直在为这个挠头。。希望有人能给我们一些启示。我有一个简单的javascript对象--data--JSON.stringify(data)像这样返回它 { "dataList": [ { "Id": 0, "Name": "0", }, { "Id": 1, "Name": "1", } ] } 我还有一个非

最后一天我一直在为这个挠头。。希望有人能给我们一些启示。我有一个简单的javascript对象--data--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的数组(它不是!)。相反,我得到了一个空数组。。这里的映射缺少什么???

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

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


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

。。我注意到在你的小提琴中有。dataList()--为什么这现在是一个函数?映射正确吗?是的,映射插件将输入的属性映射到observables或observableArrays。如果您使用两个参数调用,而第二个参数不包含插件创建的“ko_mapping”属性,我认为它会将其视为映射,只返回视图模型。