2014-03-25 75 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沒有定義' –