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

时间:2015-03-03 17:02:34

标签: backbone.js

在backbone.js中,我可以使用

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

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

2 个答案:

答案 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();