handlebars.js 相关问题

Handlebars是JavaScript的模板库。

parcel 构建 static/index.html × 构建失败。错误:未找到 index.x-handlebars-template 的变压器

我正在尝试构建一个带有车把模板和快速服务器的应用程序。 index.html 文件在脚本标记内包含所有车把模板,其中提到了 type="text/x-handlebars-te...

回答 1 投票 0

错误:无法在视图目录“./views”中查找视图“表单”

我已经在我的 app.js 文件上进行了车把模板配置,但是当我尝试使用 nodemon 运行我的代码时,他向我返回了此错误。任何人都可以帮忙吗? 当我尝试修复时产生此错误...

回答 1 投票 0

Handlebars.compile 抛出异常“错误:您必须将字符串或 Handlebars AST 传递给 Handlebars.compile。你通过了<html>...'

前提 我们在后端 Nodejs 应用程序中运行了句柄,用于对发送的各种消息进行模板化。 Handlebars.compile 抛出此异常(当从部分编译模板时...

回答 3 投票 0

在 Handlebars.js 辅助参数中连接字符串和变量的合理方法?

我正在尝试在 Ember 中构建一个简单的模态组件,但似乎 Handlebars 的“无逻辑”对我来说太不合逻辑了。有没有什么明智的方法可以达到这样的结果? &...

回答 3 投票 0

使用 Webpack 5 - 使用服务器端模板引擎时如何在 html 中引用带有 [contenthash] 替换的文件?

使用时:copy-webpack-plugin 并指定为: as: 'images/[name].[contenthash][ext]' 如何在模板中引用这些文件而不使用 html-webpack-plugin 还是handlebars-loader? ...

回答 1 投票 0

找不到名称“Handlebars”

我正在尝试在 Typescript 中使用把手。我收到以下错误 /// /// 我无法...

回答 1 投票 0

当我尝试使用handlebars.js时,出现丢失助手错误

我将 Handlebar.js 包含在我的 hbs 视图中,如下所示 </desc> <question vote="0"> <p>我将 Handlebar.js 包含在我的 hbs 视图中,如下</p> <pre><code>&lt;script src=&#34;https://cdn.jsdelivr.net/npm/handlebars@latest/dist/handlebars.js&#34;&gt;&lt;/script&gt; &lt;script&gt; Handlebars.registerHelper(&#39;ifeq&#39;, function (a, b, options) { if (a == b) { return options.fn(this); } return options.inverse(this); }); Handlebars.registerHelper(&#39;ifnoteq&#39;, function (a, b, options) { if (a != b) { return options.fn(this); } return options.inverse(this); }); &lt;/script&gt; </code></pre> <p>但是当我按如下方式使用它时,我收到错误“缺少助手:“ifeq””。我做错了什么?</p> <pre><code>{{#ifeq status &#34;0&#34;}} Status is : 0 {{/ifeq}} </code></pre> </question> <answer tick="false" vote="0"> <p>这是一个可运行的示例,显示它的工作原理:</p> <p></p><div data-babel="false" data-lang="js" data-hide="false" data-console="true"> <div> <pre><code>Handlebars.registerHelper(&#34;ifeq&#34;, function (a, b, options) { if (a == b) { return options.fn(this); } return options.inverse(this); }); const html = document.querySelector(&#34;#template&#34;).innerHTML; const template = Handlebars.compile(html); document.body.innerHTML = template({status: &#34;0&#34;});</code></pre> <pre><code>&lt;script id=&#34;template&#34; type=&#34;text/x-handlebars-template&#34;&gt; {{#ifeq status &#34;0&#34;}} Status is : 0 {{/ifeq}} &lt;/script&gt; &lt;script src=&#34;https://cdn.jsdelivr.net/npm/<a href="/cdn-cgi/l/email-protection" data-cfemail="95fdf4fbf1f9f0f7f4e7e6d5a1bba2bbad">[email protected]</a>/dist/handlebars.js&#34;&gt;&lt;/script&gt;</code></pre> </div> </div> <p></p> <p>如果您在服务器上运行此代码,请将所有代码移至那里,而不是使用稍后在客户端上运行的 <pre><code>&lt;script&gt;</code></pre> 标签。例如:</p> </answer> </body></html>

回答 0 投票 0

puppeteer找不到nodejs把手的助手

我正在 NodeJs 中使用 puppeteer 创建 PDF 文件。我用车把渲染模板,并通过复杂性传递变量,以便车把获取它们。 下面的代码是我的

回答 1 投票 0

javascript <script> 标签在解析 Handlebars 数据时是否高效?

我本质上是从后端 server.js 中的数据库中选择 *,并将其传递到试图将数据解析到表中的句柄文件。 hbs 文件如下所示: ...

回答 1 投票 0

由于 MIME 类型不匹配,资源被阻止

我收到了以下错误:由于 MIME 类型不匹配(X-Content-Type-Options:nosniff),来自“[URL 和文件名]”的资源被阻止。我所有的 CSS 和 Javascript 文件。 该...

回答 1 投票 0

使用javascript和handlebars在后端从Html创建pdf

我的项目中有一个车把模板,我需要将其转换为 dpf 文件保存并通过电子邮件发送给用户。 我尝试过像 jsPDF 这样的库,但它在服务器端对我不起作用。 jsPDF代码: ...

回答 1 投票 0

没有使用视图/模板引擎(Handlebars)在网页上获取任何动态内容

我正在使用 Handlebars 模板引擎。在控制台没有收到任何错误,但我无法在从 app.js 渲染的 index.hbs 文件中显示动态内容 应用程序.js const express = 需要...

回答 1 投票 0

在车把中,如何转义字段名称中的特殊字符?

例如我有一个像这样的对象: { '#SKU_NBR': '123' } 我想打印出该值,但简单的语法不起作用: {{#SKU_NBR}} 我该如何逃脱... 例如我有一个这样的对象: { '#SKU_NBR': '123' } 我想打印出该值,但简单的语法不起作用: <div>{{#SKU_NBR}}<div> 如何转义字段名称,以便可以在车把的模板表达式中使用它? 要详细说明bigless的答案,您可以使用以下任何一个: {{ "#SKU_NBR" }} {{ '#SKU_NBR' }} {{ [#SKU_NBR] }} 这些解析转义字符中命名的变量(而不是仅包含字符串#SKU_NBR)。 我遇到了类似的问题,因为我有名为 this 和 with 的变量。我发现 {{[this]}} 按预期工作,但 {{[with]}} 没有。我可以通过使用 {{this.with}} 来解决这个问题 解决此问题的一种方法是使用辅助函数。我制作了一个名为 get 的项目,它仅获取基于字符串的字段。 import Handlebars from 'handlebars' import get from 'lodash/get' Handlebars.registerHelper('get', function (path, opts) { return get(opts, `data.root.${path}`) }) const template = Handlebars.compile('{{get "#upc"}}'); const result = template({ '#upc': 'abc123' }) console.log(result) // abc123 您也可以在子表达式中使用它,如下所示: {{tolowercase (get "#upc")}} 您可以使用{{[@special-chars]}}。 示例:{{[#sku_no]}} 请参阅车把尝试编辑器中的工作示例:https://handlebarsjs.com/playground.html#format=1¤tExample=%7B%22template%22%3A%22%7B%7B%5B%23SKU_NBR%5D%7D% 7D%22%2C%22部分%22%3A%5B%5D%2C%22输入%22%3A%22%7B%5Cn%20%20%5C%22%23SKU_NBR%5C%22%3A%20123456%5Cn% 7D%5Cn%22%2C%22output%22%3A%22123456%22%2C%22preparationScript%22%3A%22%5Cn%22%2C%22handlebarsVersion%22%3A%224.7.8%22%7D

回答 3 投票 0

控制器中未收到用户 ID - Node-js

我正在学习 Node,遇到了一些问题。 我的目标是创建一个表,列出在数据库中注册的用户,该表创建正常,但在编辑部分用户我...

回答 1 投票 0

我可以发布我的数据,但无法使用 body-parser 显示它

我有一个网站项目。我有一个每日节目表格,我想在另一个选项卡中显示它。 我有一个网站项目。我有一个每日节目表格,我想在另一个选项卡中显示它。 <form action="/posts/test" method="POST" enctype="multipart/form-data"> //htmlcodes </form> 我正在获取数据: router.post("/daily_prog" , (req,res) => { let daily_image = req.files.daily_image daily_image.mv(path.resolve(__dirname, "../../public/img/dailyimages", daily_image.name)) Daily.create({ ...req.body, daily_image: `/img/dailyimages/${daily_image.name}`, },) req.session.sessionFlash={ type: "alert alert-success", message: "Successfully done." } console.log(req.body) res.redirect("/daily") }) 通过console.log,我可以在我的终端中看到我刚刚通过表单发布的所有数据。 现在我想用下面的代码在“每日”的选项卡中显示它,但它没有出现。 路由器: router.get("/daily",(req,res)=>{ Daily.find({}).lean().then(daily =>{ res.render("site/daily",{daily:daily}) }) }) 以及我想要显示数据的 HTML 页面标记: {{#each daily}} <div class="col-md-6"> <div class="blog"> <div class="blog-img"> <img src="{{daily_image}}" class="img-fluid"> </div> <div class="blog-content"> <ul class="blog-meta"> <li><i class="fas fa-users"></i><span class="writer">{{daily_content}}</span></li> <li><i class="fas fa-clock"></i><span class="writer">{{daily_content}}</span></li> <li><i class="fas fa-comments"></i><span class="writer"></span></li> </ul> <h3>{{daily_title}}</h3> <p>{{daily_content}}</p> </div> </div> </div> {{/each}} 当我使用 {{#each}} 和 {{/each}} 时,这些标签之间的所有 HTML 都会在显示中丢失。 如果我不使用它们而只是尝试在没有它们的情况下显示,那么任何动态数据也永远不会出现。 您的 Daily.create 是一个异步任务,因此您的 res.redirect("/daily") 可能会在数据保存到数据库之前在事件循环中执行。一个简单的改进是使用 async/await 模式,如下所示: router.post("/daily_prog" , async (req,res) => { //< Mark as async function //... //await the create call await Daily.create({ ...req.body, daily_image: `/img/dailyimages/${daily_image.name}`, }); //... res.redirect("/daily") })

回答 1 投票 0

为什么app.engine不默认使用layout.hbs作为默认值

我使用layout.hbs创建了一个样式格式,并注意到所有页面的样式并不具有相同的一致性。我注意到我没有声明应用程序。 app.js 中的引擎。 ...

回答 5 投票 0

传递数据以查看未显示的车把。 (Express-Handlebar,Node JS)

我在将数据发送到车把视图时遇到一些问题。渲染视图后,查询没问题(我已经记录了数据并且它是正确的),但我不知道为什么车把视图会...

回答 1 投票 0

下拉菜单在页面处理后始终显示第一个选项,而不是处理后的选项、Node JS、Express-Handlebars

当我选择一个选项并单击提交按钮时,它会再次渲染视图,查询很好,但下拉菜单不是显示已处理的选项,而是实际上始终显示...

回答 1 投票 0

handlebars #每个助手无法正确迭代

我有一个如下所示的车把片段 # ... 我有一个如下所示的车把片段 <table class="table"> <thead> <tr> <th scope="col">#</th> <th scope="col">Name</th> <th scope="col">Message</th> <th scope="col">Time</th> </tr> </thead> <tbody> {{#each result}} <tr> <th scope="row">{{@index}}</th> <td>{{this.name}}</td> </tr> {{/each}} </tbody> </table> 结果是来自 mongodb 的数组,如下所示 [ { _id: new ObjectId("651de76a44d50f1d9cfedede"), name: 'Lucy', message: 'I way', createdAt: 2023-10-04T22:30:02.377Z, updatedAt: 2023-10-04T22:30:02.377Z, __v: 0 }, { _id: new ObjectId("651de7eca2da2627f94ce3cb"), name: 'Tanya', message: 'I like chemical', createdAt: 2023-10-04T22:32:12.465Z, updatedAt: 2023-10-04T22:32:12.465Z, __v: 0 }, { _id: new ObjectId("651de8854ee4b125468e6921"), name: 'Otto', message: 'I from hightower', createdAt: 2023-10-04T22:34:45.179Z, updatedAt: 2023-10-04T22:34:45.179Z, __v: 0 } ] 如果我用 {{this}} 替换 {{this.name}} 它会显示 { _id: new ObjectId("651de76a44d50f1d9cfedede"), name: 'Lucy', message: 'I way', createdAt: 2023-10-04T22:30:02.377Z, updatedAt: 2023-10-04T22:30:02.377Z, __v: 0 } 用 {{name}} 替换 {{this.name}} 也不起作用(该块将保持空白) 这看起来与 how-to-iterate-over-array-of-objects-in-handlebars 非常相似,但简而言之,只是丢失 this. - 它隐含为 #each 的一部分(尽管 文档根本没有说明这一点): {{#each result}} <tr> <th scope="row">{{@index}}</th> <td>{{name}}</td> </tr> {{/each}}

回答 1 投票 0

车把@../first - @first

我试图从第二个循环中获取循环的第一项。 我知道我得到像这样的@key @../key 但@first 似乎不像@../first 那样工作 有任何想法吗? 问候

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.