javascript - 从 AJAX 每秒调用创建的帖子,无需用户输入,html View ?

标签 javascript ruby-on-rails ajax

<小时/>

要找到答案,请访问:

Render a view in rails via AJAX and controller

<小时/>

我有一个带有 Post 模型的 Rails 应用程序,其中:创建并保存新帖子;旧的已被毁灭;这是在 setInterval() 函数内设置的 AJAX 调用每 10 秒自动完成一次,如下我的 application.js 文件中所示:

var post_value = 0;
setInterval(function(){

        $.get('https://api.test', function(data){
            post_value = data.result.c[0];
        });

        $.ajax({
          type: "POST",
          url: "/posts",
          data: { parameter: post_value }
        });

    }, 1000);

到目前为止,一切顺利,我可以看到在 Rails 控制台中,AJAX 调用每秒都会保存新帖子并销毁旧帖子。这是我的 Controller :(AJAX POST 通过简单的路线与创建操作交互:posts#create)

  def index
    @posts = Post.all
    @bet_last = Bet.last
  end

  def create
    @post = Post.new
    @post.value = params["parameter"]
    @post.save  
    Post.first.destroy

    @last_post = Post.last
    @posts = Post.all

    render "index"

  end

这是相应的 html View :(index.html.erb)

<% @posts.each do |p|%>
    <tr>
        <th scope="row"><%= p.id%></th>
        <td>...</td>
        <td><%= p.value%></td>
        <td>Active</td>
    </tr>
<%end%>

我的问题是我希望在不刷新添加和删除帖子的页面的情况下显示 html 表格行。 我知道,如果从表单创建帖子,我可以使用 data-remote=true 并链接其余部分,但在我的情况下,帖子是在 Controller 中创建的,无需用户输入,所以我没有像您一样的正常设置会用一个表格。 如何在 html 中反射(reflect)更改以便动态显示?

感谢您的指导。

PS:我可以看到在浏览器控制台中,html 每秒都会更改,但我无法在页面上动态反射(reflect)这一点,但在浏览器控制台中它可以工作。

编辑:

在我的 Controller 中使用以下渲染(而不是渲染“index”)可以解决问题:

render :js => "window.location = '#{root_path}'"

但是它会使页面重新加载/刷新,这是我不想要的。

最佳答案

在你的ajax调用上添加成功回调并从那里更新你的html

$.ajax({
      type: "POST",
      url: "/posts",
      data: { parameter: post_value },
success: function(data){
// update your html here
}

    });

关于javascript - 从 AJAX 每秒调用创建的帖子,无需用户输入,html View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42862268/

相关文章:

javascript对象加载内容到DOM

javascript - 打开新标签页时如何设置标签页标题?

javascript - Node.js Twitter API 游标

css - 为什么侧边栏显示在页面底部?

ruby-on-rails - 在终端上连接到 heroku apps mongodb (compose)

php - Codeigniter 中的分页 ajax,从数据库加载数据 otomatis

javascript - 从 HTML 到 ASPX 的 AJAX 调用?

javascript - 密码输入键脚本在首次使用后无法运行

ruby-on-rails - 更新 Rails 时出错

php - 如何将ajax返回值设置为变量