我正在努力将一个项目与另一个项目与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>
答案 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}}