【问题标题】:Converting JS to CoffeScript, missing operand?将 JS 转换为 CoffeScript,缺少操作数?
【发布时间】:2013-12-31 05:18:12
【问题描述】:

我有一个 HighCharts javascript,我正在尝试使用一些在线转换器将其转换为 CoffeeScript。

但是它们都因“缺少操作数”而出错

这是代码

$(function() {
  $('#container').highcharts({
      series: [{
        name: "<%= x %>'",
        data: [
        <% @sprice = @price * @quantity %>
        <% 0.upto(@years).each do |stack| %>
          <%= number_with_precision(@sprice, precision: 2) %>,
        <% @sprice = ((@sprice*percentage)/100)+@sprice %>,
        <% end %>]
      }]
  });
});

缺少的操作数在哪里?它与我的 JS 脚本中嵌入的 ruby​​ 有关吗?

脚本在 HTML 视图文件中按预期工作。但我正试图将它移动到控制器的 js 文件中以清理它。控制器的 js 文件默认在 coffescript 中,所以我有点卡住了。

任何帮助表示赞赏,谢谢!

【问题讨论】:

  • 我认为没有任何转换工具可以处理 erb。最好使用纯 Javascript 来做到这一点。
  • 是的,我想:D 我想我只是使用 js.erb。现在需要以某种方式将捕获的 rails 对象传递给 javascript……Google 时间!
  • 为什么所有这些都在 ERB 中起作用?如果@years 很小,则ERB 是几个简单的标量,然后在CoffeeScript 中构建数组;如果@years 很大,则在控制器中进行繁重的工作,并将数据作为单行 JSON blob 填充到 CoffeeScript 中。或 AJAX 或将数据拆分为单独的 JavaScript 片段并将代码保留为 CoffeeScript。

标签: javascript ruby-on-rails highcharts coffeescript erb


【解决方案1】:

如上所述:

如果@years 很小

然后 ERB 几个简单的标量,然后在 CoffeeScript 中构建数组;

如果@years 很大

然后在您的控制器中完成繁重的工作,并将数据作为一行 JSON blob 填充到您的 CoffeeScript 中。

或 AJAX 或将数据拆分为单独的一段 JavaScript,并将代码保留为 CoffeeScript。

参考文献

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-24
    • 1970-01-01
    • 2023-02-22
    相关资源
    最近更新 更多