Knockout地图嵌套JSON数组

时间:2013-08-07 05:28:22

标签: jquery json knockout.js nested knockout-mapping-plugin

我试图以表格格式制作淘汰映射的JSON模式编辑器。我成功映射了json对象,但问题是当我处理json数组时。

代码

var l_Model;
//Create model
l_Model = function(l_data) {
    var self = this;
    //map data from json as observables
    ko.mapping.fromJS(l_data, {}, self);
    //observable to get equation from json
    self.Eqn = ko.observable(null);
};
//view model mapping to html 
var viewModelMapping = {
    'dataModel': {
        create: function(options) {
            return new l_Model(options.data);
        }
    }
};
var vm = ko.mapping.fromJS(Data);

只要数据

,此代码就可以正常工作
data = {}

但是当我处理json对象数组时,我无法映射它

data =[{},{},{},.....]

我在控制台中收到错误

Uncaught ReferenceError: Unable to parse bindings.

JS Fiddle

1 个答案:

答案 0 :(得分:1)

您可以从数组的根目录映射对象,并处理每个项目和分隔的对象。您甚至可以在对象中使用另一个映射器并继续使用嵌套映射器处理数据

       //mapper method
       mapCollection = {
            '': {
                create: function (options) {
                    return new objectWithAnotherMapper(options.data);
                }
            }
        },