是否可以在没有link_to的情况下渲染部分onclick?
我想知道是否可以在没有link_to的情况下渲染部分onclick?
我一直在寻找答案,但大多数答案blabla_path
使用link_to
和blabla_path
与remote: true
但我不想通过控制器来处理它,而只是在视图方面。
就像是
< – (这显然不起作用,但这样的事情)
谢谢
顺便说一下,我正在使用Rails 4.0.1
====
更新
我已经使用ajax和jquery动态地尝试了它,但它很有效但很奇怪。 请看下面我的代码,我已经把链接放在一个循环中但是当点击“新评论”时,它出现在第一篇文章上,当我点击第二个/第三个/第四个上的“新评论”时所有的部分在第一篇文章中得到渲染。 到底是怎么回事? 当我点击第二篇文章中的“新评论”时,它应该出现在第二个post而不是第一个post上。
如果您确实想要在单击链接或按钮时动态获取视图,则必须通过控制器进行查看。 根据MVC规则。 但在你的情况下,你可以尝试像加载页面渲染部分并使其隐藏。 并点击按钮或链接只需通过jQuery或javascript 删除其隐藏的属性 。
简单
Sabyashachi Ghosh
关于将元素隐藏在DOM中,因此您可以在点击时取消隐藏它们。 虽然效率很低,但它可以达到你想要的效果
动态
您必须使用Ajax和控制器操作来处理请求
从Rails动态加载内容的唯一方法是发送请求。 Rails就像一个巨大的API – 您必须将您的请求发送到一系列端点 (路由),然后Rails将使用控制器处理
您的问题是,如果您具有所需的路由以将请求发送到特定的控制器操作,您将只能动态加载某些内容,然后该操作将处理请求并允许Rails呈现结果
我这样做:
#app/controllers/application_controller.rb Class ApplicationController < ActionController::Base layout Proc.new {|controller| controller.request.xhr? false : "application" } #-> sets layout to false for ajax requests end #view <%= link_to "Load Popup", action_path, remote: :true %> #javascript $("a[data-remote=true]").on("ajax:success", function(data) { //handle data });