2014-03-25 46 views
0

在我的骨干网应用中,我有多个视图/模板/模型。骨干网模板:从混杂JavaScript文件中调用模板中的方法

在我的一些模板中,我想从特定文件中调用一些函数:favouriteManager.js

我知道我可以使用<% %>调用函数。但是,当我按照预期尝试像<% if (favouriteManager.hasFavouriteOne()) {} %>这样的内容时,出现错误:favouriteManager is not defined

那么如何定义它,以便在加载模板骨干时也知道在哪里可以找到这个javascript文件。

我已经尝试在使用此模板的视图中定义它,但它不起作用。

编辑:我正在使用RequireJS。

回答

1

如果你不使用任何模块管理工具,如requirejs或CommonJS的和你favouriteManager.js只需添加favouriteManager变量全球范围内(以window)你只需要查看代码脚本之前用它添加脚本标签。

更新时间:

它使用RequireJs你可以使用templateHelpers和附加模块,你给它的视图。所以你的代码将如下所示:

define(['marionette', 'favouriteManager', 'text!templates/myView.tpl'], 
function(Marionette, favouriteManager, myViewTpl) { 
    return Marionette.ItemView.extend({ 
    template: myViewTpl, 
    templateHelpers: { 
     favouriteManager: favouriteManager 
    } 
    }); 
}); 
+0

不幸的是我使用的是RequireJS。 –

+0

@MatthieuRiegler更新了我的答案 –

+0

这样做我仍然得到一个'favouriteManager没有定义' –