如何将rails数据传递给JS或Coffeescript

How to pass rails data to JS or Coffeescript?

本文关键字:JS Coffeescript rails 数据      更新时间:2023-09-26

我想从视图中获取文章id。

<%= f.text_area :content, rows: 5, placeholder: 'input....', class: 'form-control',
    id: "tags", data: {article_id: @article.id } %>

然后将article_id传递给coffeescript:

$ ->
  id = $("#tags").data('article_id')
  console.log "test-----------#{id}"
  $("#tags").autocomplete(
    source:  '/articles/' + id + '/autocomplete.json')

但是输出是:

test-----------undefined

如何将rails数据传递给JS或coffeescript?有多少种制作方法?

提前感谢!

作为@muistooshort和@JoelL说:data: {article_id: @article.id} will produce data-article-id="xxxx"

html输出:

<textarea rows="5" placeholder="input..." class="form-control" id="tags" data-article-id="{&quot;$oid&quot;:&quot;560017ddbd172d16d6000001&quot;}" name="comment[content]">

但是我从浏览器控制台日志中得到了信息:

test----------[object Object]

data: {article_id: @article.id}将生成data-article-id="theid"

下面的代码应该可以工作:

id = $("#tags").data('article-id')

更新:

您可以手动添加您的输入,因为在您的data-article-id中包含{}:

<%= f.text_area :content, rows: 5, placeholder: 'input....', class: 'form-control', id: "tags", 'data-article-id': @article.id %>

对于Jquery:

尝试attr获取value属性:

id = $("#tags").attr("data-article-id")
console.log "test-----------"+id

id = $("#tags").data("article-id")
console.log "test-----------"+id

试试这个

id = $("#tags").data('article_id')
console.log "test-----------"+id