我尝试将一个项目与另一个带有车把的项目进行比较时遇到了不好的时间。 从下面的代码中可以看出,我只想检查course_id
是否与请求的相同(courseID = req.query.course_id
(,因此在我的选择中,选择的项目将是查询中询问的项目。
但是,我找不到任何解决方案来与另一个占位符进行比较(我安装了车把助手(。例如,如果我将courseID
替换为"5ae0aebc8ab041016c9e08db"
,则代码有效("5ae0aebc8ab041016c9e08db"
是 url 中查询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>
您可以使用车把自定义帮助程序函数。只需将以下内容添加到您的快速应用程序中:
/* 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}}