我正在使用Backbone/RequireJs javascript堆栈。我想实现的是动态地要求对Backbone.Collection
的Model
依赖关系,然后设置Collection
依赖关系。动态加载依赖Backbone/RequireJs
我想保持Collection
尽可能通用,我想分配不同的Models
和其他URL取决于当前的主要上下文。目标是,只在特定的环境中加载所需的内容。
window.Collection = Backbone.Collection.extend({
initialize: function(modelName,apiRoute){
this.modelName = modelName;
this.apiRoute = apiRoute;
if (typeof(window[this.modelName]) === "function") {
this.model = window[this.modelName];
this.url = "./api/" + this.apiRoute;
}
}
...
的这里的问题是,在主背景window[this.modelName]
依赖性必须在Collection
依赖之前加载。
说MainContext
需要一个类别的对象:
// MainContext.js
define([
...
"model/Collection"
和内部MainContext
我解决所需的收集所需的依赖关系的名字值modelName
变量(E“Toys
”。)。如果我在MainContext中require(['model/Toys'])
,则该依赖文件将被加载得太晚。
这样的情况下会采取什么方法?欣赏。
我并不完全遵循你正在尝试做的事情,但是你可能会尝试动态管理你的依赖关系,进行过早的优化。如果您保持简单并使用静态方法,那么RequireJS优化器应该能够为您处理所有这些问题:http://requirejs.org/docs/optimization.html – elevine 2013-03-25 17:59:40