Rails 应用程序 (3.2.8) 和 turbolinks(不确定是否相关)已启用。
- 我有一些信息,一个用户显示页面上的
链接
。 (例如,某事发生变化的通知。) - 当用户点击链接时,我希望将他引导至页面和
- 在视觉上突出显示更改的元素。
目前我打算这样处理:
创建链接,使它们具有以下形式:
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/