jquery – Rails 4:将JSON对象(来自AJAX响应)渲染到视图中

前端之家收集整理的这篇文章主要介绍了jquery – Rails 4:将JSON对象(来自AJAX响应)渲染到视图中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Rails 4,我对 JSON对象很新.

我有一个控制器:

class UsersController < ApplicationController

 def select_users

   @users = User.all
   respond_to do |format|
     format.html
     format.js {} 
     format.json { 
        render json: {:users => @users}
     } 
   end
 end
end

和一个javascript users.js:

$.ajax({
    url:  "/users/select_users",dataType: "json",data: {
        prezzario: ui.item.value
    },success: function(data) { 
        $('#usersList').append(data.users);
    }
});

现在我想在div中呈现这个用户集合,但我不知道如何.在数据响应中,我在控制台中有正确的数据,对象如下:

{"users":[{"_id":{"$oid":"536cf7b6b8dd181f4b7acf9f"},"children":[{"$oid":"536cf7b6b8dd181f4b7acfa0"},{"$oid":"536cf7b7b8dd181f4b7acfd1"}],"description":"Some description.","name":"My name","user_id":"1"},{...........}]}

我有一个部分/users/_users.html.erb与经典users.each和所有属性的打印.
如果我试试

$('#usersList').append("<%= render 'users',:locals{ :users => "+data.users+"} %>");

我在div中找到#usersList<%= render'users',:locals {:users => undefined}%>

我想创建一个部分模板并使用它来呈现用户.我怎样才能做到这一点?

解决方法

有3种解决方案(我能想到):

>您的控制器可以在您附加到js的后端呈现HTML,例如

class UsersController < ApplicationController

   def select_users
     @users = User.all
     render "view",:users => @users
   end

success: function(data) {
   $('#usersList').append(data);
 }

>你可以使用像胡子或把手这样的东西.从未使用它,所以我不能做一个正确的例子.抱歉.
>您可以将成功代码中的html渲染为

success: function(data){
   data.users.forEach(function(user){
     $user_html = $("<div class='user'>" + user.name + "<!-- etc --!/></div>");
     $('#usersList').append($user_html);
   });
 });

猜你在找的jQuery相关文章