Backbone.js从string创建对象

时间:2013-07-02 07:21:58

标签: javascript jquery backbone.js

我想创建像这样的对象

var classes = {
   A: <object here>,
   B: <object here>,
   ...
};

new classes[name]()

但是我无法在我的骨干应用程序中使用它。

define([
  // Application.
  "app"
],

function(app) {

  var Partials = app.module();

  var classes = {
    'AccountNavStart' : Partials.Views.AccountNavStart = Backbone.View.extend({
       template: 'member/account-nav',
       serialize: function(){
         return { model: this.model };
       }
     })
  };

  // Required, return the module for AMD compliance.
  return Partials;
});

我试着像这样使用它

new Partials.classes['AccountNavStart']()

但是我收到了错误

Uncaught TypeError: Cannot read property 'AccountNavStart' of undefined 

任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

在返回之前将classes保存到Partials

function(app) {
  //...
  Partials.classes = classes;
  return Partials;
});