2013-04-18 86 views
-1

如何使用RequireJS從模塊加載骨幹視圖?

define(['jquery','frameworkviews/BackbonePrototype','applicationPath/Module1/js/views/AppView1','applicationPath/Module2/js/views/AppView2'], 
function($,BackbonePrototype,AppView1,AppView2){ 
    function getViews(modules,type){ 
    var views= new Array(); 
    for (var i = 0; i < modules.length; ++i) { 
     var cmd = 'views[' + i + '] = new ' + modules[i]+'View.'+modules[i]+type + "View" + '() ;'; 
     eval(cmd); 
     views[i].name = modules[i]; 
    } 
    return views; 
    } 
}); 


我們正在開發骨幹和RequireJS項目。我們的項目基於框架和模塊架構。模塊貢獻 骨幹視圖(AppView1/AppView2等),並由框架使用RequireJS動態加載,如上所示。我們面臨的問題是,如果添加了新模塊(例如Module3),則 然後上述框架代碼需要以修改爲將Module3視圖添加到define塊。 有什麼辦法可以避免框架中的這種變化,以及如何獲得對新添加的模塊視圖的引用?

回答

0

請勿使用eval。這是邪惡的(沒有雙關語意圖)。
我會認爲這不是你真正的代碼,因爲你不會在這裏返回任何東西。

關於你的問題,我想你會在這裏找到你需要的一切:Variable function names in Require & Backbone

兩種解決方案都適合你。