rails和coffee脚本if语句不起作用

时间:2013-04-20 22:19:43

标签: ruby-on-rails-3.2 coffeescript

我正在开发一个Rails应用程序,它支持三个不同国籍的语言。填充数据的表是使用JQuery实现的。我想将它们翻译成所有三种语言。

目前,我通过HTML数据属性传递当前语言值:

<table id="companies" class="table table-striped" data-source="<%= companies_url(format: "json") %>" data-language="<%= current_language %>">

并保存到Coffee Lang变量

jQuery ->
  Lang = $('#companies').data('language')
  $('#companies').dataTable
    sPaginationType: "full_numbers"
    sDom: "Rlfrtip"
    bJQueryUI: true
    bDestroy: true
    bProcessing: true
    bServerSide: true
    sAjaxSource: $('#companies').data('source')
    if Lang == "ro"
      oLanguage:
        sProcessing:   "Processing...",

然后我检查Lang是否为“ro”,“en”或“ru”并加载Coffee脚本所需的部分。 至少这是它应该工作的方式,但事实并非如此。

我尝试从Chrome控制台中的表格加载data('language'),该表格加载正常,但如果该语句不起作用,我将始终使用默认的英语语言。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

该语法不起作用。您不能在对象声明中放置if语句。您的if需要位于参数列表之外。

options = 
  sPaginationType: "full_numbers"
  sDom: "Rlfrtip"
  bJQueryUI: true
  bDestroy: true
  bProcessing: true
  bServerSide: true
  sAjaxSource: $('#companies').data('source')

if Lang == "ro"
  options.oLanguage = { sProcessing:   "Processing..." }

jQuery ->
  Lang = $('#companies').data('language')
  $('#companies').dataTable(options)