handlebars使用总结

1.安装express-handlebars  :   npm install --save express-handlebars

2.引入使用    var handlebars = require('express-handlebars').create({ dafaultLayout: 'main',extname: '.hds'}) //指定默认主布局,模板文件的后缀名    express会在views子目录中查找,在views/layout里

app.engine('handlebars', handlebars.engine)

app.set('view engine', 'handlebars'); 

3.布局标记: 三重大括号 {{{}}},当渲染的视图中有HTML时,必须用三重括号才能渲染出来,否则会进行转义

4.渲染数据: {{}}双重大括号

5.渲染顺序: 视图先渲染,然后在布局

6.不需要加载默认布局: app.get('/foo', function(req, res) { res.render('foo', { layout: null } })

7. 需要加载其他布局时,指定layout参数的值即可 同上,layout:‘layoutname’ 注意:必须在views/layout中创建该布局文件

8.局部文件:定义在views/partials文件夹中 ,在需要引入局部文件(组件)的地方使用{{> componentName}} 

当有多级目录时,可以使用{{> pathName/partialName}}

9.客户端使用:var template =  Handlebars.compile(html) //先编译HTML

                      var test = template(source) //传入数据

                       $('body').html(test) //编译后的文本传入页面中

Handlebars.compile 接受一个模板,返回一个方法,这个方法接受一个上下文参数,返回一个已渲染的字符串

10.客户端使用2: 在模板中需要至少对一个大括号进行转义,但是在HTML中则不必

                            <script type="text/x-handlebars-template">

                                \{{#each list}}

                           <p>\{{this}}</p>

                      \{{/each}}

                            </script> 

11.当使用布局时,遇到需要在视图中加载一些东西或者一段script脚本时,可以使用段落

  •     handlebars实例化的时候,添加一个section的辅助方法

            var handlebars = require('express3-handlebars').create({

                defaultLayout:'main',

                helpers: {

                    section: function(name, options){

                        if(!this._sections) 

                        this._sections = {};

                        this._sections[name] = options.fn(this);

                        return null;

                    }

                }

            });

  •     在视图中写需要加载的脚本   {{#section 'name'}}..................{{/section}}
  •     在布局中,对应的位置写段落标记 {{{_section.name}}} 这样就会向{{{body}}}一样,直接替换为要加载的脚本代码
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值