Jquery文件,变量id作为Ajax选择器
Jquery file with variable id as selector with Ajax
我想使用Ajax请求更改一个微帖子列表元素。那个页面上有几条微博。我的html文件是这样的。
<div class="load-more-<%= micropost.id %>" >
<ol class="answerswers" >
<%= render answers %>
</ol>
<%= link_to "more",more_micropost_path(micropost),remote: true %>
</div> `
我想加载_all_answers.html。使用Ajax单击更多链接时使用。我的js文件是
$(".load-more-<%= escape_javascript(micropost.id) %>").html("<%= escape_javascript(render('answers/all_answers')) %>");
,控制器动作为
def more
micropost=Micropost.find_by(id: params[:id])
@answers=micropost.answers
respond_to do |format|
format.html {redirect_to micropost}
format.js
end
结束但是当我按更多时,什么也没有发生。在控制台中,我得到这个错误
NameError在MicropostsController#more未定义的局部变量或方法' micropost' for #<#:0x007f08be826c48>
微post是在控制器中定义的,而不是它显示的undefined。为什么会发生这种情况?
尝试将$(".load-more-<%= escape_javascript(micropost.id) %>")
更改为$(".load-more-<%= @micropost.id %>")
并在控制器中初始化为
@micropost = Micropost.find_by(..)
我假设这是一个实例变量的问题
修复。Escape_javascript on id(应该是在字符串上)和不使用实例变量(使它们在视图中可用)是问题。
相关文章:
- ExtJS使用控制器中的View Form Data作为Ajax请求参数
- 如何在 JavaScript 中访问作为 AJAX 请求中的响应发送的自定义 Java 对象
- 为什么每个请求都作为 Ajax 请求进行处理
- 如何在 jQuery 中用 JSON 数据填充下拉列表作为 ajax 响应
- 如何使用 GET 作为方法将括号“%5B”“%5D”作为 Ajax 请求上的参数发送
- 如何使用 jQuery 提取作为 AJAX 响应接收的 JSON 数据并将其添加到 HTML 选择下拉列表中
- 将对象数组作为 ajax 发布数据发送
- 我应该将原始数据或Html作为Ajax响应发送吗
- JQuery:将HTML添加到父分区作为AJAX的结果
- 如何设计动态脚本生成作为AJAX响应的一部分
- 如何发送客户端IP地址作为AJAX请求数据
- 在javascript中传递数组元素作为AJAX POST请求的参数
- 通过数组作为$ajax参数MVC
- 如何捕获PHP脚本发送的数组作为Ajax响应并进一步使用
- 将callback函数作为Ajax-Request的参数传递
- IE问题:无法执行作为AJAX内容一部分加载的javascript
- 如何从JS中触发JS函数.作为AJAX调用的回调函数执行
- 将PHP变量作为Ajax传递回原始页面上的JavaScript变量
- Jquery文件,变量id作为Ajax选择器
- 我们如何在php代码中显示JS警报作为ajax函数