оператор if: невозможно получить частичное отображение - PullRequest
0 голосов
/ 26 октября 2018

Я пишу приложение, которое отображает другое изображение в браузере на основе пользовательских данных. Бэкэнд работает нормально: я получаю нужные пользовательские данные для хранения в куки. Вот как выглядит hbs:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>My Project</title>
    <base href="/">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
    <link rel="stylesheet" href="./public/css/styles.css" type="text/css">
</head>
<body>
    {{{body}}}
    <div class="container">
        <h1>{{title}}</h1>
        <div class="row">
            <div class="buttons col-xs-12">
                {{#each users}}
                <button class="btn btn-primary" id={{this.User_ID}} data-toggle="modal" data-target=".modal" onclick="setUserCookie(event)">
                    User ID: {{this.User_ID}} <br>
                    Geo: {{this.Geo}} <br>
                    Industry: {{this.Industry}} <br>
                    Company Size: {{this.Company_Size}} <br>
                </button>
                {{/each}}
            </div>
        </div>
        {{>picture_view}}
    </div>
</body>
<script src="src/js/controller.js" type="text/javascript"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script>
</html>

А вот так выглядит частичное представление picture_view:

{{#newLogin}}
<div class="row">
    <img src="../src/images/Austin.jpg" alt="">
</div>
{{/}}

и мой маршрут app.js для URL выглядит следующим образом:

app.get('/users/:id', (req, res)=>{
    let data = req
    User.findOne({User_ID: req.params.id}).then((user)=>{
        res.render('partials/picture_view', {user:user, helpers:{
                    newLogin: function(){
                        console.log('newLogin runnning')
                        let user = data.cookies.user;
                        if(user){
                            return true;
                        } else {
                            return false
                        }
                    }
                }})
        });
})

Вот маршрут для корневой страницы:

app.get('/', (req, res) => {
    let data = req;
        User.find({}).exec(function(err, users){
            res.render(__dirname + '/public/views/', {title: "Users", users:users, helpers:{
                    newLogin: function(){
                        console.log('newLogin runnning')
                        let user = data.cookies.user;
                        if(user){
                            return true;
                        } else {
                            return false
                        }
                    }
                }
            });
        })
    }
)

Я не могу получить частичную визуализацию, подобную этой. Если я перехожу на страницу / users /: id в браузере, функция newLogin возвращает «истинное» значение на страницу, но не отображает изображение. Я попытался переместить логику шаблона на первую страницу, и он делает то же самое. Я в растерянности.

...