Ruby on rails 如何将动态Ruby代码嵌入到;javascript";Slim模板中的节?
单向:Ruby on rails 如何将动态Ruby代码嵌入到;javascript";Slim模板中的节?,ruby-on-rails,ruby,slim-lang,Ruby On Rails,Ruby,Slim Lang,单向: javascript_tag do == "var all_product_ids = #{existing_ids.to_json};" == "var products_json = #{@filter.data.to_json};" 或: 有更好的解决方案吗?我更喜欢做的是将所有javascript保存在一个单独的文件中 例如,我将按如下方式执行(jquery): 在布局中: 那么,您将在js中使用它,如下所示: $.myapp.allProductIds 苗条的
javascript_tag do
== "var all_product_ids = #{existing_ids.to_json};"
== "var products_json = #{@filter.data.to_json};"
或:
有更好的解决方案吗?我更喜欢做的是将所有javascript保存在一个单独的文件中 例如,我将按如下方式执行(jquery): 在布局中: 那么,您将在js中使用它,如下所示:
$.myapp.allProductIds
苗条的
javascript:
var all_product_ids = "#{existing_ids.to_json}";
var products_json = "#{@filter.data.to_json}";
我对此也有类似的问题。使用其他人提供的代码对我不起作用,因为slim是html转义我的变量。我最终使用了。这一款是为Sinatra设计的,但他们也为Rails设计了一款宝石。希望它能帮助其他有类似问题的人。来自 文本插入段落 默认情况下,SLIM转义HTML。
要避免对{content}使用相同的{{content}请先创建一个
\u您的\u erb\u文件\u包含\u javascript\u code.erb
然后在slim文件javascript:
part中:
#{ conditions ? (render 'your_erb_file_contain_javascript_code') : nil}
非常感谢。但是当你只需要一两行js代码时,你还会使用一个单独的文件吗?是的,这只是为了“最佳实践”的问题。但是,这仍然会使您的代码更加坚实、结构更好。为什么这是对特定slim/javascript问题的ERB/jQuery回答时可以接受的答案……请注意方法的attackcheck Rails api
清理
$.myapp.allProductIds
javascript:
var all_product_ids = "#{existing_ids.to_json}";
var products_json = "#{@filter.data.to_json}";
javascript:
var all_product_ids = #{raw existing_ids.to_json};
var products_json = #{raw @filter.data.to_json};
#{ conditions ? (render 'your_erb_file_contain_javascript_code') : nil}
javascript:
var isAdmin = "#{current_user.admin? ? 1 : 0}";