2012-01-26 47 views
0

我有一個生成jst.ejs模板的rails-backbone項目。寫EJS查看幫手

我想在其中包含一些視圖助手,但我有一個helluva時間搞清楚如何將EJS或JST函數包含到該模板文件中。如果任何人都可以提供一個非常快速的解釋如何包含一個非常基本的功能,以便它可以通過ejs.jst模板讀取,我會非常感激。

我試過侵入JST & EJS,加上使用裸JavaScript函數,但沒有帶來任何喜悅。下面的實施例嘗試:

例如:

# helpers.js.coffee 
console.log('yes, this file is being called from the app') 
helloWorld:() -> 
    console.log "Hello, world!" 

# app/assets/javascripts/backbone/templates/project/new.jst.ejs 
<%= helloWorld() %> 

(返回未捕獲的ReferenceError)

理解任何想法。乾杯。

回答

0

您可能需要將其附加到window,因爲coffeescript會在每個.coffee文件周圍放置關閉()。如何處理範圍問題的一個很好的例子是任何流行的js/coffee實用程序,如underscore.js。他使用var root = thisexports以符合CommonJS慣例,並將他的_功能發佈到全球可用的世界中。

CoffeeScript: Accelerated JavaScript Development有關於這個話題的一章(第4章),也是關於CoffeeScript的一本好書。它解釋了很多現代世界在JavaScript方面的地方。