我有一个基于 sprockets 的 Rails 构建的主干应用程序,我正在使用 backbone-forms和 associations .文件(模型和集合等)按一定顺序包含(多亏了 sprockets )。问题是,当我为一个模型创建表单时,我必须引用另一个模型的构造函数,但它不起作用(因为模型的文件尚未包含在内)。
这段代码会更有意义。所以,这是我的文档模型:
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
未定义。
我该怎么办?有解决方法吗?
最佳答案
我推荐使用 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;
});
关于javascript - 引用 sprockets 的 Backbone rails 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25055641/