2013-03-12 92 views
0

我已實現將反向支付轉換爲項目,該項目使用requirejs,並且存在requirejs 2個javascript文件,1個名爲'front.js.coffee'的面向客戶網站,第二個名爲「admin.js.coffee」的CMS。我已經創建了一個全局變量作爲我在網站頭部呈現的部分內容,然後我需要front.js文件來提取此值以構建Recurly交易表單。我必須這樣做,因爲我需要服務器來生成簽名,所以這必須通過'* html.erb'文件。如何將javascript全局變量傳遞到requirejs,ruby on rails

因此,這裏是一個共享視圖文件中的全局變量:

<%= javascript_tag do %> 
    signature_value: '<%= j RECURLY_SIGNATURE %>' 
<% end %> 

因此,這裏是JS的front.js文件中:

Recurly.config 
subdomain: 'iewebinar' 
currency: 'USD' 
country: 'US' 
Recurly.buildTransactionForm 
target: '#recurly-transaction' 
successURL: '/webinars/thank_you.html' 
signature: 'signature_value' 

我是新來的Ruby on Rails開發我不完全明白Requirejs這麼簡單的指令會很棒:)

回答

1

在你需要js文件之前,你可以添加

<script> 
    window.signature_value = '<%= j RECURLY_SIGNATURE %>' 
</script> 

然後在您的配置中只使用window.signature_value

successURL: '/webinars/thank_you.html' 
signature: window.signature_value 

另外一個選項是將文件名改爲admin.js.coffee.erb。這將使您訪問紅寶石功能,因此您 可能 有權訪問常數 (抱歉,我不知道這一點)。

successURL: '/webinars/thank_you.html' 
signature: '<%= RECURLY_SIGNATURE %>'