在backbone.js中,我可以使用
初始化模型var model = new MyModel();
但我想用动态名称初始化一个模型 - 比如" MyDynamicModel"。我怎样才能做到这一点?
答案 0 :(得分:1)
如果您的模型是全局声明的(在window
对象上),那么您可以使用方括号表示法:
var Model = window[modelName]; // Assuming modelName is the dynamic name of your model
var model = new Model();
或者,如果您的模型在App.Models
:
var Model = App.Models[modelName];
var model = new Model();
作为最后的手段,您可以使用Javascript的eval
功能,但通常应该避免这种情况。
var Model = eval(modelName);
var model = new Model();
答案 1 :(得分:0)
您可以使用包装器对象获得类似的结果。
var wrapper = {
"myDynamicName": new MyModel(),
"myOtherModel": new MyModel()
}
然后你可以这样称呼它:
wrapper["myDynamicName"].render();