SyntaxError: Unexpected token '&'. Expected a property name

SyntaxError: Unexpected token '&'. Expected a property name

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

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

但是我得到这个错误:

SyntaxError: Unexpected token '&'. Expected a property name.

我试着用 JSON.parse() 包裹起来,但没用。

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

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

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

根据定义:

This method outputs without escaping a string. Since escaping tags is now default, this can be used when you don’t want Rails to automatically escape tags.

Slim中,我们可以使用{{}}.

将JSON数据赋值为JS对象
javascript:
  var tteesstt = #{{users.select(:id, :email).order(:email).to_json}};
  console.log(tteesstt); // ensures it gets the data as expected.