如何比较占位符把手与#compare

时间:2018-05-04 16:51:52

标签: javascript html select compare handlebars.js

我正在努力将一个项目与另一个项目与Handlebars进行比较。 正如您从下面的代码中看到的那样,我只想检查course_id是否与请求的courseID = req.query.course_id相同,因此在我的选择中,所选项目将是被问及的项目查询。

但是,我找不到任何解决方案来使比较工作(我安装了把手助手)与另一个占位符。例如,如果我将courseID替换为"5ae0aebc8ab041016c9e08db""5ae0aebc8ab041016c9e08db"是在网址中查询的course_id,则代码可以正常工作。

你知道让它成功吗?

                <form id= "course_id" action="" method='get'>
            <select id="course_id" name="course_id" onChange="document.getElementById('course_id').submit()">
                {{#each courses}}
                    <option value="{{this._id}}" {{#compare this._id "==" courseID }}selected="selected"{{/compare}} >{{this.name}}</option>
                {{/each}}
            </select>
        </form>

1 个答案:

答案 0 :(得分:0)

您可以使用手柄自定义辅助功能。只需添加到您的快递应用程序:

/* equals helper */
hbs.registerHelper('ifEquals', function (v1, v2, options) {
    if (v1 === v2) return options.fn(this);
    return options.inverse(this);
});

/* not equals helper */
hbs.registerHelper('ifNotEquals', function (v1, v2, options) {
    if (v1 !== v2) return options.fn(this);
    return options.inverse(this);
});

然后在你的HTML中:

{{#each courses}}
    <option value="{{this._id}}" {{#ifEquals this._id courseID }}selected="selected"{{/ifEquals}}>{{this.name}}</option>
{{/each}}