Javascript 带链轮的主干轨道模型参考

Javascript 带链轮的主干轨道模型参考,javascript,ruby-on-rails,backbone.js,sprockets,backbone-forms,Javascript,Ruby On Rails,Backbone.js,Sprockets,Backbone Forms,我有一个构建在带有链轮的Rails上的主干应用程序,我正在使用和。文件(模型和集合等)以特定顺序包含(由于链轮)。问题是,当我为一个模型创建表单时,我必须引用另一个模型的构造函数,但它不起作用(因为该模型的文件尚未包含) 代码会更有意义一些。下面是我的文档模型: var Document = Backbone.AssociatedModel.extend({ //... schema: { description: 'Text', tags: {

我有一个构建在带有链轮的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]
        }
    }

    //...
}
这是我的标签型号:

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]
        }
    }

    //...
}
问题是链轮在包含文档模型之后包含我的标记模型,因此
tag
是未定义的

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

我建议使用来管理依赖项

e、 g

然后:


使用像RequireJS这样的依赖关系管理器在这种情况下有效,但是如果标签与模型之间存在另一种可能的标签形式的关系,则会出现相同的问题。如果有3个模型,每个模型都相互依赖,会怎么样?requireJs不会正确地要求任何文件,因为它们都相互依赖。这不是真的,所有大型应用程序都有相互依赖性,它工作正常,有时,通常通过糟糕的体系结构,您会得到一种循环依赖,这种依赖可以通过在初始化方法的define中使用require来打破,例如,
AssociatedModel=require('AssociatedModel')