Backbone.js : 使用动态名称初始化模型

Backbone.js : initialize Model with dynamic name

在 backbone.js 中,我可以使用

初始化模型
var model = new MyModel();

但我想用动态名称初始化模型 - 例如 "MyDynamicModel"。我怎样才能做到这一点?

您可以使用包装器对象来获得类似的结果。

var wrapper = {
    "myDynamicName": new MyModel(),
    "myOtherModel": new MyModel()
    }

那么你可以这样称呼它:

wrapper["myDynamicName"].render();

如果您的模型是全局声明的(在 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();