大佬教程收集整理的这篇文章主要介绍了jquery – 轨道上的Ajax 4,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
$('.favorite').on('click',function() { var $heart = $(this).find('.fa'); $heart.removeClass('fa-heart-o').addClass('fa-heart'); // POST request to server to create favorite in db $.post('/favorites',{ favorite: { post_id: $(this).attr('data-id') } },function(data) { console.log(data); }); });
控制器
def create post = Post.find_by_id(favorite_params[:post_id]) if current_user.favorite_posts.include? post render json: {},status: :bad_request else @favorite = current_user.favorites.new(favorite_params) if @favorite.save render json: @favorite else render json: { errors: @favorite.errors.full_messages },status: :unprocessable_entity end end
结束
这是观点
<% if current_user.favorite_posts.include? post %> <span class="fa fa-heart"> <%= post.favorites.count %></span> <% else %> <span class="fa fa-heart-o"> <%= post.favorites.count %></span> <% end %>
任何帮助表示赞赏.谢谢.
我认为您最大的问题是您没有任何功能可以在成功请求时更改您的视图.上面的两个选项是你必须使它工作,所以我会在这里为你详细说明:
阿贾克斯
Ajax将向您发送请求;你仍然需要管理它的响应&功能:
$.post('/favorites',{ favorite: { post_id: $(this).attr('data-id') }},.done( function(data) { /* Manipulate your view here */ $("span.fa").text(data); console.log("success"); });
您必须记住,Ajax只是一个异步请求.也就是说,Javascript将像微浏览器一样,代表您向服务器发送数据.
然后它会收到服务器的响应(可能包含你想要的数据)……然后你的工作是使用这些数据来操纵你的视图.
JS
您可以使用的另一种方法涉及Rails UJS系统.也就是说,您可以在触发控制器操作后触发javascript ERB模板.
这样您就可以根据需要操作视图,而无需编辑当前的javascript:
$.post('/favorites',{ favorite: { post_id: $(this).attr('data-id') }} .done( function(data) { console.log(data); }); #app/controllers/favourites_controller.rb class FavouritesController < ApplicationController def create ... respond_to do |format| if @favorite.save format.js #-> invokes /views/favourites/create.js.erb format.json { render json: @favorite } else format.js format.json { render json: { errors: @favorite.errors.full_messages },status: :unprocessable_entity } end end
然后,您就可以使用app / views / favorites / create.js.erb来操纵您的视图:
#app/views/favourites/create.js.erb $("span.fa").hide();
以上是大佬教程为你收集整理的jquery – 轨道上的Ajax 4全部内容,希望文章能够帮你解决jquery – 轨道上的Ajax 4所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。