Sails.js在视图中不显示模型数据关联

essxiv

使用Sails.js v0.12.4和Node.js v6.4.0

我正在尝试使用MVC在特定视图中显示一对多关联。

User.js

module.exports = {
    attributes: {
        tickets: {
            collection: 'ticket',
            via: 'owner'
        }
    }
}

Ticket.js

module.exports = {
    attributes: {
        owner: {
            model: 'user'
        }
    }
}

UserController.js

show: function(req, res, next) {
    User.findOne(req.param('id')).exec(function(err, user) {
        if (err) next(err);
        if (!user) return next();
        res.view({
            user: user,
            userTickets: user.tickets
        });
    });
},

/edit/user/show.ejs

<% _.each(userTickets, function (ticket) { %>
<tr data-id="<%= ticket.id %>" data-model="ticket">
    <td> <%= ticket.id %> </td>
    <td> <%= ticket.ticketName %> </td>

    <td><a href="/ticket/show/<%= ticket.id %>">Show</a></td>
    <td><a href="/ticket/edit/<%= ticket.id %>">Edit</a></td>
    <td><a href="/ticket/destroy/<%= ticket.id %>">Delete</a></td>
</tr>
<% }) %>

我什至在我的MongoDB数据库中找到了关联:

属于以下对象的票证对象:“ 57c1207dea46efef0c0cd27d”

{
"_id" : ObjectId("57c27f6de4c7fd2d036a96b5"),
"owner" : ObjectId("57c1207dea46efef0c0cd27d"),
"ticketName" : "asdfasdfasdfasdfasdf",
"createdAt" : ISODate("2016-08-28T06:06:37.085Z"),
"updatedAt" : ISODate("2016-08-28T06:06:37.085Z")
}

用户对象

{
"_id" : ObjectId("57c1207dea46efef0c0cd27d"),
"firstName" : "Dan",
"lastName" : "Michaels",
"email" : "[email protected]",
"createdAt" : ISODate("2016-08-27T05:09:17.598Z"),
"updatedAt" : ISODate("2016-08-27T05:09:17.598Z")
}

它不在我的/show.ejs页面中显示任何内容。

重新字节

改变

User.findOne(req.param('id')).exec(function(err, user) {

User.findOne(req.param('id')).populate('tickets').exec(function(err, user) {

http://sailsjs.org/documentation/reference/waterline-orm/queries/populate

那应该做。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章