0

教室.manager 在服务器上可以为空。所以它可能不是来自服务器。如果它不是来自服务器,我想添加它并使用我自己的构造函数创建它。如果它来自服务器,我想用它自己的数据创建它。

 var mappingOption = {

      create: function (classroom) {
        var res = ko.mapping.fromJS(clasroom.data);

        if (res.manager == undefined)
            res.manager = ko.observable(new Manager());

        return res;
    },
    'manager': {
        create: function (args) {
            var res = ko.mapping.fromJS(args.data);
            var res2 = new Manager();
            $.extend(res2, res)
            return res2;
        }
    }
4

1 回答 1

1

教室模型

var Classroom = function(data) {
    self = this;
    data = data || {};
        self.manager = data.manager || new Manager();

    ko.mapping.fromJS(data, { 
        'manager': {
            function (managerData) {
                return new Manager(managerData);
                }
            }
        }, self);

};

经理模型

var Manager = function(data) {
    self = this;
    data = data || {};
    ko.mapping.fromJS(data, {}, self);
};

关键部分是data || new Manager()部分

于 2012-11-04T23:36:08.787 回答