2013-07-02 67 views
-1

我想創建這樣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 

任何想法如何解決這個問題?

+0

你不應該回到班?這是被定義的模塊。或者,如果您想添加到Partial對象,那麼您需要執行'Partials.prototype.classes = ...'。否則'Partials.classes'永遠不會被定義。 – Jivings

+0

在返回之前將'classes'保存爲'Partials' - 'Partials.classes = classes' –

+0

@VitaliyPetrychuk此作品,請將此作爲答案發布 –

回答

1

保存classesPartials返回之前:

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