- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 Handlebars 在两种形式上发布信息时遇到问题。我刚刚开始学习它,所以我还不适应它。基本上,我试图通过搜索项目 ID 并返回该信息,将我数据库中两个表中的信息显示到两个表单上。我让它为第一种形式工作。每当我搜索项目ID时,都会返回相关信息。但是当我在下一个表单上搜索项目 ID 时,它会在第一个表单上填充数据并完全忽略第二个表单。我会发布我认为与这个问题相关的所有代码。
这是处理第一个表单的 Controller 和路由
findOne: async (req, res) => {
const { project_id } = req.body
const metadata = await Prjt_metadata.findOne({
where: {
project_id
}
});
return res.render('allForms', {
metadata
})
}
}
router.post('/find', metadataController.findOne)
这是 Controller 和处理第二种形式的路由
getOneCostsHours: async (req, res) => {
try {
const { project_id } = req.body
const costsHours = await Prjt_costs_hours.findOne({
where: {
project_id
}
});
return res.render('allForms', {
costsHours
})
} catch (error) {
console.error(error.message);
return res.status(500).json(error);
}
}
router.post('/find', costsHoursController.getOneCostsHours);
这是第一个表单的 html 代码
<form action='/find' method='POST'>
<section class="row">
<div class="col-md-4">
<div>
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text" id="inputGroup-sizing-default">Project ID:</span>
</div>
<input id="disabled" name="project_id" type="text" class="form-control">
</div>
</div>
<div class="input-group mb-3">
<label class="input-group-text" for="inputGroupSelect01">Building:</label>
<select disabled name="building" class="form-select" id="inputGroupSelect01">
{{#with metadata}}
<option selected>{{building}}</option>
{{/with}}
</select>
</div>
<div class="input-group mb-3">
<label class="input-group-text" for="inputGroupSelect01">Measure Type:</label>
<select disabled name="measure_type" class="form-select" id="inputGroupSelect01">
{{#with metadata}}
<option selected>{{measure_type}}</option>
{{/with}}
</select>
</div>
<div class="text-end">
<button id="search" type="submit" style="background-color: #bf5700;"
class="btn text-light btn-warning mt-3">Search</button>
</div>
</form>
这是第二种形式的html代码
<form action='/find' method="POST">
<div class="card border-secondary text-light mb-3" style="background-color: #333f48;">
<h5 class="card-header">Costs & Hours</h5>
<div class="card-body">
<div class="input-group mb-3">
<span class="input-group-text" id="inputGroup-sizing-default">Project ID:</span>
<input name="project_id" type="text" class="form-control"
aria-label="Sizing example input" aria-describedby="inputGroup-sizing-default">
</div>
<div class="input-group mb-3">
<label class="input-group-text" for="inputGroupSelect01">Implementation or
Annual:</label>
<select disabled name="imp_or_ann" class="form-select" id="inputGroupSelect01">
{{#with costsHours}}
<option>{{imp_or_ann}}</option>
{{/with}}
</select>
</div>
<div class="input-group mb-3">
<label class="input-group-text" for="inputGroupSelect01">Category:</label>
<select disabled name="category" class="form-select" id="inputGroupSelect01">
{{#with costsHours}}
<option>{{category}}</option>
{{/with}}
</select>
</div>
<div class="input-group mb-3">
<span class="input-group-text" id="inputGroup-sizing-default">Costs: $</span>
{{#with costsHours}}
<input disabled value={{cost}} name="cost" type="text" class="form-control" aria-label="Sizing example input"
aria-describedby="inputGroup-sizing-default">
{{/with}}
</div>
<div class="input-group mb-3">
<span class="input-group-text" id="inputGroup-sizing-default">Hours:</span>
{{#with costsHours}}
<input disabled value={{hours}} name="hours" type="text" class="form-control" aria-label="Sizing example input"
aria-describedby="inputGroup-sizing-default">
{{/with}}
</div>
</div>
<button type="submit" style="background-color: #bf5700;"
class="btn btn-warning text-light">Search</button>
</div>
</form>
project_id 的值来自两个表单上名称为“project_id”的输入。就像我上面说的,第一种形式工作正常。它根据 project_id 获取相关信息。但是当我搜索第二个表单时,它被忽略,第一个表单中的数据再次发布。
最佳答案
我通过将两个 Controller 组合成一个单独的 Controller 和路由来解决这个问题
新的 Controller 和路由
const { Prjt_metadata, Prjt_costs_hours } = require('../models');
module.exports = {
findOne: async (req, res) => {
try {
const { project_id } = req.body
const metadata = await Prjt_metadata.findOne({
where: {
project_id
}
});
const costsHours = await Prjt_costs_hours.findOne({
where: {
project_id
}
});
return res.render('allForms', {
metadata,
costsHours,
})
} catch (error) {
console.error(error.message);
return res.status(500).json(error);
}
}
}
const router = require('express').Router();
const getOneByIdController = require('../controllers/getDataById');
router.post('/find', getOneByIdController.findOne)
module.exports = router
关于html - 如何使用 Handlebars 在一条路线上提交多个表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67638992/
是否可以将 Handlebars 预编译代码反编译为 Handlebars 模板? 可能转换成这样: function program2(depth0, data) { var buffer = ''
我知道它被问过很多次,我已经看过答案但不确定我哪里错了。 我查看了 Handlebarsjs 上的文档并遵循了教程,但两次我都遇到了同样的错误。
我有一个普通的 Handlebars 模板,我正在通过 puppeteer 生成 pdf。我能够正常地通过正文访问数据,但似乎无法在 JS 脚本标记中这样做。我的数据看起来像这样。 const con
我有一个问题,有时我想遍历的对象只是一个普通对象,但有时它是一个数组,因为我使用的是 {{#each}} Handlebars built-在助手中。 当对象是一个数组时,它工作得很好,但当它是一个普
我只是对 Handlebars 作为模板解决方案有了更好的了解,并且遇到了一个我不知道如何解决的问题。 我在我的布局中添加了部分,一个用于页眉,一个用于页脚,用于从我的 View 中动态插入脚本。但是
在我的 Handlebars 模板中,我检查变量是否存在,如果存在则呈现一些文本: {{#if foo}} some text {{/if}} 如果 foo 是文本或者 foo 是数字但不是零,这
所以我已经阅读了关于 Handlebars partials 的官方文档. 它指出: In order to use a partial, it must be registered via Hand
我有一个“国家/地区”对象,我将其作为 Handlebars 上下文的一部分传递: { 'hk': {'name': 'Hong Kong', 'someotherprop': 'someother
我有一个广泛的新闻源 (JSON),但我只需要在主页上向用户显示前三个新闻。有没有办法从第四个开始丢弃?比如: {{#each news}} {{ if index {{title}} - {{d
使用动态部分时有没有办法进行部分故障转移? Handlebars partials documentation 显示动态部分,并且只显示带有硬编码部分名称的故障转移。 最佳答案 这里有一个 githu
我有一个像这样的文件夹结构: - components/ - foo/ - index.js - foo.handlebars - foo.scss - bar/
我采用了一个带有 Handlebars 的项目,但遇到了让 handlebars 在客户端呈现模板的问题。 基本上,目前的设置方式是模板在服务器端呈现。我现在正处于需要能够使用以下方法在 AJAX 响
如何手动使用预编译的 handlebars.js 模板? 假设,我们有 source = "Hello, my name is {{name}}" data = { name: "Joe" } 目前,
我正在使用 Handlebars 的运行时构建并尝试使用已注册的部分。我愿意: Handlebars.registerPartial("path/partialname", Handlebars.te
我正在使用 Handlebars 在服务器端渲染代码(无角度/ Ember ) 我还能以某种方式拥有一些东西吗:{{{content}}} 我只想在bolean为true的情况下才拥有CSS类 类似于
在 Handlebars 2+ 中,如何在这样的循环中动态读取属性? objects是一个对象数组。 keys是一个字符串数组。我想为每个对象循环每个键并放置它的 .foo span 中的值. {{#
我正在尝试创建一个表,该表使用来自JSON文件的对象填充每个表单元格。我的 Handlebars 模板只为每个对象添加了数据。我想完成的是为第5个项目创建一个新行,然后继续填充表格单元格,直到第10个
例如,您可以看到 {{{body}}} 并且在模板中,您可以执行类似 {{data.page.hero.text}} 的操作 有什么我们应该注意的显着差异吗? 最佳答案 Handlebars HTML
我有两个使用的 Handlebars helper 。 首先是 timeboundset ,它接受一个数组和一个日期字段,并且仅选择和应用落在该日期字段之后的那些元素。 第二个是 sortedset
是否可以在 Handlebars 条件中使用全局变量?我正在编写一个列出很多对象的应用程序,我希望用户能够控制列出哪些详细信息。例如,在人员列表中仅显示名字,如下所示: {{#each people
我是一名优秀的程序员,十分优秀!