【问题标题】:SyntaxError: Unexpected token '&'. Expected a property nameSyntaxError:意外的标记“&”。需要一个属性名称
【发布时间】:2018-08-24 13:31:04
【问题描述】:

我正在使用 Slim。当我描述 javascript: 块时,我在 JS 代码中使用它:

javascript:
    var tteesstt = #{users.select(:id, :email).order(:email).to_json};

但我收到此错误:

语法错误:意外的标记“&”。需要一个属性名称。

我尝试使用 JSON.parse() 换行,但没有帮助。

请告诉我,如何解决这个问题?

【问题讨论】:

  • .order(: email).to_json}email 之前的冒号后面有一个空格
  • @mindlis 这只是 stackoverflow 上的一个错字。在项目代码中,这个地方一切都很好。
  • 你能多展示一些苗条的模板吗..?可能是整个javascript:
  • @ArupRakshit 更新了问题中的代码。
  • 不应该是- users = User.all.limit(5) 吗?也可以试试var tteesstt = JSON.parse("#{users.select(:id, :email).order(:email).to_json}");

标签: ruby-on-rails ruby-on-rails-4 slim-lang


【解决方案1】:

Slim 中,我们可以使用{{}} 将JSON 数据分配为JS 对象。

javascript:
  var tteesstt = #{{users.select(:id, :email).order(:email).to_json}};
  console.log(tteesstt); // ensures it gets the data as expected.

【讨论】:

    【解决方案2】:

    您的 JSON 字符串必须包含一些导致错误的特殊字符。您可以使用raw 修复它:

    javascript:
      var tteesstt = #{raw users.select(:id, :email).order(:email).to_json};
    

    从定义:

    此方法在不转义字符串的情况下输出。由于转义标签现在是默认设置,因此当您不希望 Rails 自动转义标签时可以使用它。

    【讨论】:

      猜你喜欢
      • 2019-12-13
      • 2021-06-08
      • 2020-10-27
      • 2020-09-28
      • 2018-08-02
      • 2020-10-03
      • 2022-01-26
      • 1970-01-01
      • 2022-12-13
      相关资源
      最近更新 更多