gpt4 book ai didi

javascript - Sequelize.js 的关联未呈现在页面上

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

我有两个模型。

var self = {
User: sequelize.define('user', {
id: {type: Sequelize.INTEGER,primaryKey: true,autoIncrement: true},
name: {type: Sequelize.STRING,allowNull: false}
}),

Role: sequelize.define('role', {
id: {type: Sequelize.INTEGER,primaryKey: true,autoIncrement: true},
name: {type: Sequelize.STRING,allowNull: false}
})
}

我还指定了它们之间的关联。
self.User.belongsTo(self.Role);

Controller user.js 的一部分:
list: function(req, res){
models.User.findAll({offset: offset, limit: limit}).success(function (users) {
if (req.params.format == 'html') {
res.render('admin/user/list.html', {
title: 'Users',
layout: layout,
users: users
});
} else if (req.params.format == 'json') {
res.json(users);
}
}

在 View list.html 中:
<% users.forEach(function(user){ %>
<tr>
<td><%= user.id %></td>
<td><a href="/admin/user/<%= user.id %>/show.html"><%= user.name %></a></td>
<td><%= user.getRole().name %></td>
</tr>
<% } %>

如果我们调用/list.html 我们为每个用户在页面上获得了未定义的 Angular 色。

如果我们调用/list.json 我们会得到:
[{"id":1,"name":"user1", "role_id":1},
[{"id":2,"name":"user2", "role_id":1},
[{"id":3,"name":"user3", "role_id":2},
...

如何在 list.html 和 json 响应中获取每个用户的 Angular 色?
或者也许有更好的方法?

谢谢。

最佳答案

没有获取关联 Angular 色的原因是,获取该用户的 Angular 色是异步处理的。这意味着 1.) 您需要使用 user.getRole().success(function(role){}) 和 2.) 您需要读取 Controller 中的 Angular 色,因为 EJS 无法处理异步性。希望有帮助:)

关于javascript - Sequelize.js 的关联未呈现在页面上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11467542/

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