在解析期间在嵌套对象中使用相同的Backbone集合

时间:2013-09-30 07:52:35

标签: javascript backbone.js requirejs underscore.js

AbstractProductCollection.js:

define([
  'app',
  'models/AbstractProductModel',
  'models/ProductModel', 
  'models/PackageModel'
],
function (app, AbstractProductModel, ProductModel, PackageModel) {

    return Backbone.Collection.extend({

        model: AbstractProductModel,

        url: app.config.apiUrl + '/product',

        parse: function(response, options) {
            return _(response.data.abstractProduct).map(function(attrs) {
                switch (attrs.productTypeId) {
                    case 1:
                        return new ProductModel(attrs);
                    case 6:
                        return new PackageModel(attrs);
                }
            });
        }
    });
});

PackageModel.js:

define([
  'underscore',
  'backbone',
  'app',
  'models/AbstractProductModel',
  'collections/AbstractProductCollection'
],
function (_, Backbone, app, AbstractProductModel, AbstractProductCollection) {

    var PackageModel = AbstractProductModel.extend({

        defaults: {
        },

        initialize : function(){
            this.products = new AbstractProductCollection(this.get('products'));
        }

    });

    _.defaults(PackageModel.prototype.defaults, AbstractProductModel.prototype.defaults);
    _.defaults(PackageModel.prototype.initialize, AbstractProductModel.prototype.initialize);

    return PackageModel;

});

我收到此错误:未捕获TypeError:undefined不是函数PackageModel.js:17。 AbstractProductCollection在调试器中未定义。

任何人都可以为此解决问题吗?

0 个答案:

没有答案
相关问题