hbs使用手册

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hbs使用手册相关的知识,希望对你有一定的参考价值。

参考技术A 为了使用partial,必须先用接口注册。

现在使用partial:

可以使用子表达式动态使用一个partial。

如果一个变量的取值是partial的名字,可以通过lookup helper动态使用:

使用partial的时候,传入上下文,可以实现自定义执行partial的上下文。

通过hash参数,自定义数据可以传入partial。

可以使用相对路径访问父级变量:

当尝试渲染一个找不存在的partial时,正常行为是通过接口抛出一个错误。
使用partial时,通过块级方式引用,代替抛出一个错误:

块级方式还可以把template传给partial。

通过inline声明符,templates 可以定义块级作用域 partials。

假如有一个叫做layout的partial:

这样编写这个layput的会好一点:

根据条件进行渲染一个block,可以使用if helper。
如果它的参数返回值是false,undefined,null,'',0或者是[],则不会渲染这个block。

如果使用一个空的上下文(resume为),resume会被当成是undefined。

使用block expression时,可以指定一个template section,当参数返回值是false时。这个section使用else标记。

可以使用unless helper,起到与if helper相反的作用。这个block会被渲染,如果它的expression返回值是false。

可以遍历一个列表,使用 each helper。在这个block内,可以使用 this 引用正在遍历的元素。

可以使用this expression在任一的上下文,引用当前的上下文。
可以选择性地使用 else setion,显示一些内容,当列表为空时。

当遍历的对象是一个数组时,可以选择性地引用当前索引,通过 @index 。

当遍历的对象是一个对象时,可以选择性地引用当前键名,通过 @key 。

当遍历的对象是一个数组时,可以使用 @first / @last 引用第一个/最后一个iteration。
当遍历的对象是一个对象时,仅可以使用 @first 。

each block 镶嵌时,可以访问父级的索引值, @../index 。

另外,each helper还支持block parameters,允许别名引用在这个block内。

正常情况下,会使用传入的上下文进行编译模板。

别名

lookup helper 允许动态参数引用。

log helper 允许访问上下文状态,当执行模板时。

官方文档-英文

如何将数据从 hbs (html) 传递到 axios 发布请求?

【中文标题】如何将数据从 hbs (html) 传递到 axios 发布请求?【英文标题】:How do I pass data from hbs (html) to axios post request? 【发布时间】:2019-09-02 18:25:31 【问题描述】:

对 nodejs 和 express 非常陌生。

当按下“提交”按钮时,我想将作为电子邮件的用户输入数据发送到 axios.post 请求的数据。 我检查了 axios 请求中的硬编码数据工作正常。

data_email.hbs

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
    <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
    <div>
        <div>
            <nav class="navbar navbar-inverse" role="navigation" style="padding-left:130px;">
                <ul class="nav navbar-nav">
                    <li><a href="/home">Home</a></li>
                    <li><a href="/about">About us</a></li>
                    <li class="active"><a href="/data_email">Data by Email<span class="sr-only">(current)</span></a></li>    
                </ul>
            </nav>
        </div>

        <div class="container">
            <h3>Employee Data Search</h3>
            <label for="email">Enter the employee's cloud-spartan.com email</label></br>
            <input type="email" id="email" size="30">
            <input type="submit" value="search">
            <div class ="employee-data">
                (data)
            </div>
        </div><!-- container -->
    </div>
</body>
</html>    

server.js

app.get("/data_email", function(req,res)
  queries = req.query;
  if(queries)
    axios.post(url_post,
      post_data, //get the data (email) from data_email.hbs
      post_config, 
      params: queries
    ).then(function (response)
      json_result_post = response['data'];
      content = json_result_post['body-json'];
      //console.log(content);
      data_table = JSON.stringify(content, null, 2);
      res.render("data_email", data:data_table);
    ).catch(function (error)
      console.log(error);
    );
  
  else 
    console.log("???");
  
); 

【问题讨论】:

【参考方案1】:

您的html 中应该有formsubmit 按钮。

<div class="container">
  <form action="/data_email" method="POST">
    <input type="text" id="email" value="">
    <input type="submit" value="Submit">
  </form>
</div>

您的服务器应该监听POST 方法而不是GET。您还需要body-parser 来解析传入的x-www-form-urlencoded 请求正文。然后可以通过req.body

获得表单输入
const bodyparser = require('body-parser')

app.use(bodyParser.urlencoded( extended: false ));

app.post("/data_email", function(req,res) 
  console.log(req.body)
  // contains input, example req.body.email

更新:

您可以拥有具有相同 api 名称但不同 http methods 的端点。因此,您可以执行以下操作来提供表单

app.get("/data_email", function(req,res)
  res.render("data_email", data:data_table);

【讨论】:

评论不用于扩展讨论;这个对话是moved to chat。 @naga-elixir-jar,感谢您的评论!现在可以使用了

以上是关于hbs使用手册的主要内容,如果未能解决你的问题,请参考以下文章

谁有FreeBSD的使用手册啊?

Apache Druid的SQL查询使用手册

STM32相关手册使用记录

自制man手册临时使用脚本

Linux man手册的基本组成和使用方法

Linux man手册的基本组成和使用方法