Rails 在 JavaScript 调用后更新 DIV(从模型重新加载)
Rails Updating a DIV (with reload from model) after a javascript call
好的,我有一个页面向客户显示他有多少小部件。这是视图(哈姆尔(:
#available
= "Available widgets: #{@customer.widgets.unused.count()}"
("未使用"是模型中显示可用小部件的范围(。
当客户使用带有":remote => true"的表单兑换小部件时,一些javascript会在带有动画的页面上放置一个漂亮的DIV,并且模型由控制器更新。
下面是控制器:
def redeem
@customer = Customer.find(params[:customer_id])
number = params[:amount].to_i
unless @customer.widgets.unused.empty?
number.times do
@customer = Customer.find(params[:customer_id])
widget = @customer.widgets.unused.first # Grab first unused pass
widget.status = "Redeemed"
widget.save!
end
else
@pay = "true"
# customer.widgets.new
end
# redirect_to @customer
end
这是javascript(js.erb(:
var number = <%= params[:amount] %>;
<% if @pay.eql? "true" %>
$("#widget-pay").modal('toggle');
<% else %>
while (number > 0) {
var item = $('<div class="widget-show">...</div>');
$('#allwidgets').isotope('insert', item);
number --;
}
<% end %>
我的问题是我现在想用新的小部件计数更新"#available"DIV。 我该怎么做?
在最坏的情况下,我可以重新加载页面,以便再次从模型中提取数据,充其量只是更新 DIV。 我似乎都无法从javascript中做到这一点。
你可以做这样的事情:
render :js => "$('#available').append(widget)"
widget.save!
相关文章:
- 创建新数据和加载现有数据需要单独的视图吗
- 钛 - HTTPClient:打开新的控制器加载
- 保持 JavaScript 在浏览器控制台中运行,即使在新的页面加载之后也是如此
- 路由到新页面时加载不起作用
- 如何在新窗口完成加载后执行某些内容
- 使用新标题重新加载 html 页面
- Primefaces在打开新页面时加载数据消息
- Wordpress音频播放器和平滑状态.在新页面重新加载播放器时调用什么回调函数
- 用新数据重新加载renderer3d
- 文本不被渲染后,新的页面加载- JQuery移动
- 需要在新标签中加载pdf/doc文件,而不是下载,只是想在浏览器中阅读
- 用新参数重新加载页面
- Js和CSS不检测新页面何时加载
- 在新页面上加载一个flash视频,它在上一页上的位置
- 在新窗口中加载代码编写器视图
- 在控制台中使用新脚本重新加载页面
- 如何在加载新页面后加载AJAX数据
- 如何使用jQuery在新窗口中加载页面,然后关闭它们
- Jquery没有看到新的HTML加载到对话框中
- 无法用新值重新加载JGrid