繁体   English   中英

每个输出多于记录的车把

[英]Handlebars Each Outputting More than Records

我的句柄出现问题,每条语句输出的HTML标记的数量远远大于SQL查询中显示的记录的数量。 在测试中,我所能确定的只是我的SQL查询似乎没有问题,因为它可以显示数据库中记录的确切计数,并且不会散出数据。 这使我认为这可能与我的循环或存储SQL查询信息的对象有关。

这是显示的HTML:

车把输出

这是HTML:

{{#each currentUsers}}
                <li>{{this.email}} ({{#with this.teams.[0]}}{{teamName}}{{else}}No Team{{/with}})|<a href="/app/settings/users/{{this.userId}}/team">Edit Team</a> {{#ifeq this.userId ../user.userId}} (Admin) {{else}}| <a href="/app/users/{{this.userId}}" id="user-delete-link">Delete</a>{{/ifeq}}</li>
            {{else}}
                <p>No additional users</p>
{{/each}}

这是我的路线:

appRoutes.route('/settings/users')

    .get(function(req, res){
        models.User.find({
                where: {
                    organizationId: organization.organizationId
                }, attributes: ['userId', 'email', 'firstName', 'lastName'],
                include: [{ 
                    model: models.Team,
                    attributes: ['teamName']
                }]
            });
        }).then(function(currentUsers){
            res.render('pages/app/settings-users.hbs',{
                user: req.user,
                currentUsers: currentUsers
            });
        }).catch(function(error){
            res.send(error);
            console.log(error);
        })
    });

这是SQL的输出,该输出恰好显示了我期望的一条记录:

SQL输出

最后是实际的SQL:

SELECT `user`.*, `teams`.`team_id` AS `teams.teamId`, `teams`.`team_name` AS `teams.teamName`, `teams.member`.`member_id` AS `teams.member.memberId`, `teams.member`.`member_email` AS `teams.member.memberEmail`, `teams.member`.`organization_id` AS `teams.member.organizationId`, `teams.member`.`team_id` AS `teams.member.teamId`, `teams.member`.`user_id` AS `teams.member.userId`, `teams.member`.`created_at` AS `teams.member.created_at`, `teams.member`.`updated_at` AS `teams.member.updated_at`, `teams.member`.`organization_id` AS `teams.member.organization_id`, `teams.member`.`team_id` AS `teams.member.team_id`, `teams.member`.`user_id` AS `teams.member.user_id` FROM (SELECT `user`.`user_id` AS `userId`, `user`.`email`, `user`.`first_name` AS `firstName`, `user`.`last_name` AS `lastName` FROM `user` AS `user` WHERE `user`.`organization_id` = 2 LIMIT 1) AS `user` LEFT OUTER JOIN (`member` AS `teams.member` INNER JOIN `team` AS `teams` ON `teams`.`team_id` = `teams.member`.`team_id`) ON `user`.`userId` = `teams.member`.`user_id`;

尝试使用Model.findAll() ,如果有任何数据,该方法总是返回对象数组。 .find()返回对象(如果有一条记录)和数组(如果有更多记录)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM