2

我在带有链轮的 Rails 上构建了这个主干应用程序,并且我正在使用主干形式关联。文件(模型和集合等)按特定顺序包含(感谢链轮)。问题是,当我为一个模型创建表单时,我必须引用另一个模型的构造函数并且它不起作用(因为尚未包含模型的文件)。

代码会更有意义。所以,这是我的文档模型

var Document = Backbone.AssociatedModel.extend({
    //...

    schema: {
        description: 'Text',
        tags: {
            type: 'NestedModel',
            model: Tag
        }
    }

    //...
});

这是我的标签模型

var Tag = Backbone.AssociatedModel.extend({
    //...

    schema: {
        name: {
            type: 'Select',
            options: [1,2,3,4]
        }
    }

    //...
}

问题是 sprockets 在包含文档模型之后包含我的标签模型,因此Tag未定义。

我应该怎么办?有解决办法吗?

4

1 回答 1

1

我推荐使用RequireJS来管理依赖。

例如

define([
    'extensions/assocmodel'
], function(AssociatedModel) {
    'use strict';

    var TagModel = AssociatedModel.extend({
        //...

        schema: {
            name: {
                type: 'Select',
                options: [1,2,3,4]
            }
        }

        //...
    });

    return TagModel;
});

然后:

define([
    'extensions/assocmodel',
    'path/to/tag/model'
], function(AssociatedModel, TagModel) {
    'use strict';

    var DocumentModel = AssociatedModel.extend({
        //...

        schema: {
            description: 'Text',
            tags: {
                type: 'NestedModel',
                model: TagModel
            }
        }

        //...
    });

    return DocumentModel;
});
于 2014-07-31T09:54:35.653 回答