javascript - 将 Rails 对象传递给 Javascript

标签 javascript ruby-on-rails

我使用 Rails 已经有一段时间了。我想通了一些东西,但我正在努力解决这个问题。我有一系列博客文章,只显示了它们的标题。在 Controller 中,对象看起来很简单:

@articles

在我的主页上,我通过局部渲染它​​并只显示标题。

<%= render 'shared/article_view', :collection => @articles %>

这为我提供了主页上的文章列表。当我点击标题时,我想在单独的 div 中打开它。我有这个与表格一起工作。但是,我不确定如何将参数传递给被调用的 javascript。我假设我可以将 id 传递到我的 view_article.js.erb 文件,然后可以从那里调用

@article = Article.find_by_id(id)

然后

<p><%= @article.text %></p>

但是,我不知道如何将任何类型的参数传递给这个文件。它甚至可能不起作用,我这样做可能是完全错误的。正如我所说,仍在学习。无论如何,感谢您的帮助!

最佳答案

我的语法可能有点不对劲,但我会这样做:

HTML

 <div data-id="<%= @article.id %>" class="article"><%= @article.title %></div>

JS

这可能有助于解释您的 js 将如何工作:http://guides.rubyonrails.org/asset_pipeline.html .我通常做的是创建一个对象,其中包含我对特定 View 的所有绑定(bind)(和其他方法)。然后在 View 底部的某处,我将在文档就绪 block 中创建对象的实例并绑定(bind) DOM。您所有的 js 都将通过 list 文件 (application.js) 添加到布局中的任何位置。

app/assets/javascripts/users.js

// Wraps your binding in a document ready function
// Runs as soon as the DOM is loaded
$(function() {
  $('.article').on('click', function() {
    var id = $(this).attr('data-id');
    $.get('articles/' + id, function(data) {
      // Handle the result
      $('.article-window').html(data);
    });
  });
});

app/assets/javascripts/application.js

  // This directive will include all your js files in the javascripts folder
  //= jquery
  //= require_tree .

app/views/layouts/application.html.erb(或布局所在的任何位置)

  // This adds all your js to the page
  <%= javascript_include_tag "application" %>

Rails Controller

class ArticlesController < ApplicationController
  respond_to :html, :json
  def show
    @article = Article.find(params[:id]
    respond_with do |format|
      format.json { render :json => @article }
    end
  end
end

关于javascript - 将 Rails 对象传递给 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11238084/

相关文章:

javascript - 如何使用回车键进入剑道网格中的新行

javascript - 选中/取消选中单选按钮并在取消选中时隐藏选项

javascript - ajax加载搜索结果

javascript - onclick 事件不等待文件选择

ruby-on-rails - 是否有在 RAILS API Controller 索引操作中应用过滤器哈希的 DRY 方法?

ruby-on-rails - 无法转储单例 - cached_resource gem

javascript - 从模态中获取输入值

ruby-on-rails - 如何通过Rails控制台检查列上是否有索引?

ruby-on-rails - rake 数据库 :dump fails when specifying an environment

ruby-on-rails - 在activeadmin中过滤值或IS NULL