0

我在一个项目中实施了定期付款,该项目正在使用 requirejs,并且有 requirejs 2 个 javascript 文件,1 个名为“front.js.coffee”用于面向客户的站点,第二个名为“admin.js.coffee”用于 CMS。我创建了一个全局变量作为渲染到网站标题中的部分变量,然后我需要 front.js 文件来提取此值以构建 Recurly 交易表单。我必须这样做,因为我需要服务器生成签名,因此必须通过“*html.erb”文件。

所以这是共享视图文件中的全局变量:

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

所以这里是front.js文件里面的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,所以简单的说明会很棒:)

4

1 回答 1

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. 这将使您可以访问 ruby​​ 函数,因此您可以访问常量(对不起,我不确定)。

successURL: '/webinars/thank_you.html'
signature: '<%= RECURLY_SIGNATURE %>'
于 2013-03-12T11:05:43.393 回答