2013-05-17 84 views
0

這是我的樣本JST文件Require.js JST文件

(function() { 
    var _ref; 

    if ((_ref = window.JST) == null) { 
    window.JST = {}; 
    } 

window.JST['test'] = function(context) { 
    return (function() { 
    var $o; 

    $o = []; 
    $o.push("<h1>yayyyyyyaa</h1>"); 
    return $o.join("\n"); 
}).call(context); 
}; 

}).call(this); 

我在主幹應用程序中使用require.js,像

define ['backbone', 'marionette', 'text!javascripts/backbone/templates/test.jst'],  
(Backbone, Marionette, template) -> 

    class Test extends Backbone.Marionette.ItemView 
     template: JST[template] 

當我加載應用程序,我得到:

ReferenceError: JST is not defined 

爲什麼哦爲什麼!

謝謝!

回答

0

您的代碼存在的問題是您在「模板」變量中獲取了該函數的文本。您仍需要eval該文本才能在窗口上創建實際的JST實例。

整體而言,問題在於您濫用文字!插件,你真正需要做的是使用requireJs的模塊,而不是將變量掛在窗口上。