Handlebars模板引擎渲染页面

基本使用,并简单列举了几种常见的数据格式的渲染方式

js:
var testTpl = Handlebars.compile($(‘#test‘).html()); //模板
    var arr = [1,2,3] //数据
    $(‘#box‘).append(testTpl(arr)); //调用

html:
<script type="text/x-handlebars-template" id="test">
{{#each this}}
        <li>索引:{{@index}},内容:{{this}}</li>
{{/each}}
</script>

下面说几种数据源如何渲染数据,js中基本一样,声明模板->声明要渲染数据->调用并插入到页面 ,不明白看 上面基本使用

数据源是Array 

js:
var arr = [1,2,3]
html:
{{#each this}}
        <li>索引:{{@index}},内容:{{this}}</li>
{{/each}}

数据源是数组对象(对象内部包含数组,再次each这个数组即可)

js:
var arr = [
    {‘a‘:‘1‘,‘b‘:2,‘c‘:[‘4‘,‘5‘,‘6‘]},
    {‘a‘:‘11‘,‘b‘:22,‘c‘:[‘44‘,‘55‘,‘66‘]}
 ];
html:
{{#each this}}
    <li>{{a}}</li>
    <li>{{b}}</li>
    {{#each c}}
        <li>父级索引{{../a}}.{{@index}}:访问父级:{{../a}} 。当前索引:{{@index}},当前元素:{{this}} </li>
    {{/each}}
{{/each}}

数据源是对象

js:
var context = {
    data:{
        one: "un",
        two: "deux",
        three: "trois"
    }
}
html:
<ul>
    {{#each data}}
        <li>对象的key:{{@key}},对象的值:{{this}}</li>
    {{/each}}
</ul>
<ol>
    {{#each data}}
        <li>对象的索引:{{@index}},对象的值:{{this}}</li>
    {{/each}}
</ol>

数据源数对象数组

js:
var context = {
            data: ["one", "two", "three"],
            data2: ["one", "two", "three"],
        };
html:
<ul>
    {{#each data}}
        <li>
            数组的索引:{{@index}} ,索引对应的内容:{{this}}{{#eq @index 0}}王生辉{{/eq}}
        </li>
    {{/each}}
    {{#each data2}}
        <li>
            数组的索引:{{@key}},索引对应的内容:{{shenghui this}}
        </li>
    {{/each}}
</ul>

说明:@key 和@index

     @key:如果当循环的数据是数组 则返回下标,如果是对象则返回key值

   @index:都返回下标

时间: 2024-08-11 07:34:00

Handlebars模板引擎渲染页面的相关文章

使用模板引擎渲染HTML界面

使用模板引擎渲染HTML界面 by 伍雪颖 模板引擎:GRMustache pod 'GRMustache', '~> 7.3.0' html模板: template.html <HTML> <HEAD> </HEAD> <BODY> <H1> {{ name }} </H1> <P> {{ content }} </P> </BODY> </HTML> 调用: - (void)v

SpringBoot入门篇--使用Thymeleaf模板引擎进行页面的渲染

在做WEB开发的时候,我们不可避免的就是在前端页面之间进行跳转,中间进行数据的查询等等操作.我们在使用SpringBoot之前包括我在内其实大部分都是用的是JSP页面,可以说使用的已经很熟悉.但是我们在使用springBoot开发框架以后我们会发现一个致命的问题,就是SpringBoot对Jsp的支持可以说是惨不忍睹,官方推荐我们进行使用的是Thymeleaf模板引擎进行.其实我这里也没搞清楚模板引擎原理是什么,以后有机会再深入了解,我们只需要学会怎么用就行,目前而言.当然模板引擎有很多,比如f

Spring Boot? 使用Thymeleaf模板引擎渲染web视图

静态资源访问 在我们开发Web应用的时候,需要引用大量的js.css.图片等静态资源. 默认配置 Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则: /static /public /resources /META-INF/resources 举例:我们可以在src/main/resources/目录下创建static,在该位置放置一个图片文件.启动程序后,尝试访问http://localhost:8080/D.jpg.如能显示图片,配置成功. 渲染

iOS:使用模板引擎渲染HTML界面

在实际开发中,UIWebView控件接受一个HTML内容,用于相应的界面,下面是该API的接口: - (void)loadHTMLString:(NSString *)string baseURL:(nullable NSURL *)baseURL 由于HTML内容通常是变化的,所以我们需要在内存中生成该HTML内容.比较简单粗暴的做法是将该HTML的基本内容定义在一个NSString中,然后用[NSString stringWothFormat]方法将内容进行格式化,示例如下: //给对应的标

SpringBoot:2.SpringBoot整合Thymeleaf模板引擎渲染web视图

在Web开发过程中,Spring Boot可以通过@RestController来返回json数据,那如何渲染Web页面?Spring Boot提供了多种默认渲染html的模板引擎,主要有以下几种: Thymeleaf FreeMarker Velocity Groovy Mustache Spring Boot 推荐使用这些模板引擎来代替 Jsp,Thymeleaf 只是其中一种,下面我们来简单聊聊Thymeleaf及实践一下如何整合Spring Boot和Thymeleaf. 1.Thyme

Spring Boot? 使用freemarker模板引擎渲染web视图

效果图 代码 package com.wls.integrateplugs.hello.controller; /** * Created by wls on 2017/8/24. */ import java.util.Locale; import java.util.UUID; import javax.servlet.http.HttpSession; import com.sun.org.apache.regexp.internal.RE; import org.springframew

Handlebars模板引擎

Handlebars 是 JavaScript 一个语义模板库,通过对view和data的分离来快速构建Web模板.它采用"Logic-less template"(无逻辑模版)的思路,在加载时被预编译,而不是到了客户端执行到代码时再去编译, 这样可以保证模板加载和运行的速度.Handlebars兼容Mustache,你可以在Handlebars中导入Mustache模板. 使用与安装 Handlebars的安装非常简单,你只需要从Github下载最新版本,你也可访问下面网址获取最新信

Asp.net动态页面静态化之初始NVelocity模板引擎

Asp.net动态页面静态化之初始NVelocity模板引擎 静态页面是网页的代码都在页面中,不须要运行asp,php,jsp,.net等程序生成client网页代码的网页,静态页面网址中一般不含"?"."="."&"等特殊符号. 静态页面不能自主管理公布更新的页面,假设想更新网页内容,要通过FTP软件把文件DOWN下来用网页制作软件改动(通过fso等技术例外) 常见的静态页面举例:.html扩展名的..htm扩展名的. 注意:静态页面并

最好的模板引擎Beet的6大创新点

2011年发布Beetl 0.5的时候,新闻是在Iteye上发布的,老资格程序员可能预料Iteye上会发生什么了,我收到的最多的不是鼓励和喝彩,而是吐槽,"又是一个轮子"是里面最大的声音.尽管4年前的版本还只是个雏形,但实际上已经开始有了与众不同创新点.我将在本文介绍一下Beetl的创新点和创新思路,希望有志从事开源开发的人能借鉴 首先,Beetl是一个脚本风格的模板,这顺应了新时代程序员的审美. freemarker 当初为什么能从模板引擎中脱颖而出,其实与当时XML流行无不关系.程