2013-05-17 34 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的模块,而不是将变量挂在窗口上。