0

サーバーでは、classroom.managerをnullにすることができます。したがって、サーバーからのものではない可能性があります。サーバーからのものでない場合は、追加して独自のコンストラクターで作成したいと思います。サーバーからのものの場合は、独自のデータを使用して作成します。

 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 に答える