gpt4 book ai didi

jquery - 轨道 4 : Rendering JSON object (from AJAX response) into view

转载 作者:行者123 更新时间:2023-12-03 22:27:40 25 4
gpt4 key购买 nike

我正在使用 Rails 4,而且对 JSON 对象还很陌生。

我有一个 Controller :

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个解决方案(我能想到的):

  1. 您的 Controller 可以在附加到 js 的后端呈现 HTML,例如

     class UsersController < ApplicationController

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

     success: function(data) {
    $('#usersList').append(data);
    }
  2. 您可以使用 mustache 或 Handlebars 之类的东西。从未使用过它,所以我无法做一个合适的例子。抱歉。

  3. 您可以在成功代码中渲染 html,例如

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

关于jquery - 轨道 4 : Rendering JSON object (from AJAX response) into view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23688049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com