javascript - Rails 技术在重定向后执行 javascript

标签 javascript jquery ruby-on-rails

Rails 应用程序 (3.2.8) 和 turbolinks(不确定是否相关)已启用。

  1. 我有一些信息,一个用户显示页面上的链接。 (例如,某事发生变化的通知。)
  2. 当用户点击链接时,我希望将他引导至页面
  3. 在视觉上突出显示更改的元素。

目前我打算这样处理:

创建链接,使它们具有以下形式:

project2/comment.1453

创建一个 notifications controller, 它获取 projects2 和更改类型 comment 及其 id 1453 .所以理论上我想重定向到 projects2 并在该页面上突出显示 id 1453 的评论。问题是:重定向后如何突出显示评论?

notificationscontroller.rb(伪代码!)

def show
  project = Project.find(params[:project_id])
  comment = Comment.find(params[:commment_id])
  redirect_to project AND highlight!
end

在我的研究过程中,我遇到了 Backbone,看起来 Backbones 路由器可以通过使用函数(注释的突出显示)响应 url 来解决这个问题。但我对 Backbone 没有任何经验。

我不确定这种功能的一般方法是什么。并希望避免走错路。如果你能帮助我,那就太好了。

编辑:有点小问题:我不确定 comment.1453 使用哪个字符 # 是更好的选择? (评论#1453)

最佳答案

除了在重定向到的页面上包含 javascript 之外,您不能在重定向后运行 javascript。

您想要的是将信息从这个请求传递到下一个(重定向的)请求。

闪光灯是执行此操作的好方法。通常你会用它来发送短信:

redirect_to project, notice: "Project foo bar message"

flash[:notice] = "Project foo bar message"
redirect_to project

没有什么可以阻止您在闪存中使用其他标识符并将 JSON 存储在它们中。

flash[:highlight_ids] = "[12, 43, 472, 482]"
redirect_to project

然后在您的布局中或某处将此 flash 消息提取到 JavaScript:

var highlight_ids = <%= flash[:highlight_ids] %>;

然后使用您的 javascript 魔术来突出显示实际元素。

关于javascript - Rails 技术在重定向后执行 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13950464/

相关文章:

javascript - 将元素添加到序列化列表而不重复的更好方法

ruby-on-rails - Rail 5 将 ActionDispatch::Reloader 与自定义重载器交换

ruby-on-rails - Ruby on Rails 以 % 或信息 block 的形式返回结果

javascript - 搜索 JavaScript 对象中值的所有路径

javascript - 在不重新加载页面的情况下在组合框中选择元素时从数据库自动填充文本框

javascript - jQuery 给人以背景滚动速度较慢的印象

ruby-on-rails - 太阳黑子空间搜索不返回结果

javascript - 如何访问以下数组中的 ID 和 pID?

javascript - 引用错误 : Can't find variable: exports

javascript - 停止重复鼠标悬停检测