node.js - 使用 Express 和 Handlebars,如何从数据库中预填充或重新加载选择菜单选项?
问题描述
我有一个正在处理的用户更新表单。用户可以从选择菜单中选择一个选项,该选项作为字符串保存到数据库中。
<select name="morality" id="morality">
<option value="">Choose down below!</option>
<option value="Good"> Good</option>
<option value="Neutral">Neutral</option>
<option value="Evil">Evil</option>
</select>
当用户选择一个选项时,我可以发布到数据库。当我重新加载页面时,我想获取选择的值并使用它将选择的属性添加到相应的选项。因此,如果有人选择 Neutral 并保存它,我想展示...
<select name="morality" id="morality">
<option value="">Choose down below!</option>
<option value="Good"> Good</option>
<option value="Neutral" selected >Neutral</option>
<option value="Evil">Evil</option>
</select>
解决方案
渲染页面时必须传递值morality
才能查看:
router.get('/edit/:id', function(req, res) {
Model.findOne({_id:req.params.id},function(err,data){
if(!err && data){
res.render('home',{morality:data.morality});
// or you can pass whole data object to view
//res.render('home',{data:data});
// inside view {{data.morality}}
}
});
});
并在视图中添加这样的条件:
<select name="morality" id="morality">
<option value="" {{morality==''?'selected':''}}>Choose down below!</option>
<option value="Good" {{morality=='Good'?'selected':''}}> Good</option>
<option value="Neutral" {{morality=='Neutral'?'selected':''}}>Neutral</option>
<option value="Evil" {{morality=='Evil'?'selected':''}}>Evil</option>
</select>
推荐阅读
- google-cloud-platform - 如何为 Google Cloud Scheduler 设置基本身份验证
- reactjs - 解析开关输入值 ant design
- ios - 我尝试在 iOS 中使用 mailcore2 连接和获取邮件。但我得到了错误
- javascript - 通过javascript添加新的选择菜单后,选定的选项保持切换到默认值
- angular - 如何在 Angular 中使用光标事件?
- javascript - 为什么从 MailChimp 的元数据 Api 中得到错误 Invalid_Key?
- javascript - 打字稿中的“未定义对象关键字”错误
- html - 固定侧边栏和导航栏
- vba - excel vba按钮将文本添加到文件
- date - SSSZZ 在日期格式 yyyy-MM-dd'T'HH:mm:ss.SSSZZ 中是什么意思?