jsrender for 标签

for object使用

1.为进入object中直接使用其中的属性

<div id="result"></div>

<script id="theTmpl" type="text/x-jsrender">
<div>
  {{:name}} lives in
  {{for address}}
    <b>{{>city}}</b>
  {{/for}}
</div>
</script>

<script>
var data = [
  {
    "name": "Pete",
    "address": {
      "city": "Seattle"
    }
  },
  {
    "name": "Heidi",
    "address": {
      "city": "Sidney"
    }
  }
];

var template = $.templates("#theTmpl");

var htmlOutput = template.render(data);

$("#result").html(htmlOutput);
</script>

2.切入模版

<body>

<script id="peopleTemplate" type="text/x-jsrender">
  <div>
    {{:name}} lives in {{for address tmpl="#addressTemplate" /}}<!--切入其他模版-->
  </div>
</script>

<script id="addressTemplate" type="text/x-jsrender">
  <b>{{>city}}</b>
</script>

<div id="result"></div>

<script>
var people = [
  {
    "name": "Pete",
    "address": {
      "city": "Seattle"
    }
  },
  {
    "name": "Heidi",
    "address": {
      "city": "Sidney"
    }
  }
];

var html = $("#peopleTemplate").render(people);

$("#result").html(html);
</script>

</body>

2.for array的使用,为循环标签

<body>

<div id="result"></div>

<script id="theTmpl" type="text/x-jsrender">
<b>{{:title}}</b>
<ul>
  {{for members}}
      <li>{{:name}} lives in <b>{{:address.city}}</b></li>
  {{/for}}
</ul>
</script>

<script>
var data = {
  "title": "The A team",
  "members": [
    {
      "name": "Pete",
      "address": {
        "city": "Seattle"
      }
    },
    {
      "name": "Heidi",
      "address": {
        "city": "Sidney"
      }
    }
  ]
};

var template = $.templates("#theTmpl");
var htmlOutput = template.render(data);
$("#result").html(htmlOutput);
</script>

</body>

3.for标签还支持else的判断

else:表示for中的没有值循环或者为空,则进入

{{for members}}
    Name: {{:name}}
{{else}}
    No members...
{{/for}}

Conditional blocks: — Render the block content of the {{for}} tag (or referenced template) if the object is defined and is not an empty array, otherwise render the {{else}} block (or template)

<body>

<div id="result"></div>

<script id="theTmpl" type="text/x-jsrender">
<b>{{:title}}</b>
<ul>
  {{for members}}
    <li><b>Name:</b> {{:name}}</li>
  {{else}}
    <li>No members!</li>
  {{/for}}
</ul>
</script>

<script>
var data = [
  {
    "title": "The A team",
    "members": []
  },
  {
    "title": "The B team",
    "members": [
      {
        "name": "Pete"
      }
    ]
  }
];

var template = $.templates("#theTmpl");

var htmlOutput = template.render(data);

$("#result").html(htmlOutput);
</script>

</body>
时间: 2024-10-13 22:31:45

jsrender for 标签的相关文章

JsRender模板

一.jsrender jsrender 是下一代的 jQuery 模板,专为高性能的纯字符串渲染而优化,无需 DOM 和其他 jQuery 依赖. 在JsRender中,是通过调用方法render()来渲染模板的.换句话说,就是在Html文件中使用java script来输出html模板的内容. 二.下载最新的jsrender.js和jsrender.min.js官方文档下载:http://www.jsviews.com/#download jquery下载地址: http://jquery.c

jsRender模板引擎

jsRender模板引擎 上一篇最后提到了模板,并尝试自己编写一个最简单版本:有些朋友可能用过 jqtmpl,这是一个基于jquery的模板引擎,不过它已经不再更新了,而且据说渲染速度比较慢.这里介绍另外一个模板引擎:jsRender.个人觉得这些东西学习起来还是很简单的,挑一个看看就行,实际要用到了哪个,官网看看demo也就会用了.之所以选择jsRender,因为它具有以下特点: 简单直观 功能强大 可扩展的 快如闪电 当然,谁都会自己给自己的产品下这样定义.不过我用完后,确实发现它:简单直观

jsrender demo

1.内置的模板标签,{{:x}}解析html与{{>x}}不解析html区别 <!DOCTYPE html> <html> <head lang="en">     <meta charset="UTF-8">     <title></title>     <script src="../js/jquery-2.1.4.js"></script>

JsRender for object 语法说明

JsRender 作为一款JavaScript模版引擎,必不可少的会有循环功能,也就是for,但由于JsRender过于灵活,for竟然可以接受object作为循环对象. {{for Array}}和{{for Object}}都是允许的,{{for Array}}大家都能理解,就是遍历一个数组,逐个取出每个元素.但{{for Object}}就有点让人匪夷所思了,而且官方文档只是举了个没什么帮助的例子,其他无任何说明. 刚开始小菜以为{{for Object}}的用意是遍历该Object的所有

JsRender 学习总结

最近学习了一下Jsrender模板渲染工具,非常不错,功能比较强大,官网说他是“简单直观 功能强大 可扩展的 快如闪电”确实如此.总结一下!! jsRender 三个最重要的概念:模板.容器和数据. 最重要的是:view(视图) 是我们定义的模板,上下文是视图所用的对象. 一.基础. {{:}} 和 {{>}}(或{{html:}})两者都可以输出内容,不过后者是经过html编码的. {{: pathOrExpr}} (value) 值类型 {{> pathOrExpr}} (HTML-enc

knockoutJS学习笔记02:jsRender模板引擎

上一篇最后提到了模板,并尝试自己编写一个最简单版本:有些朋友可能用过 jqtmpl,这是一个基于jquery的模板引擎,不过它已经不再更新了,而且据说渲染速度比较慢.这里介绍另外一个模板引擎:jsRender.个人觉得这些东西学习起来还是很简单的,挑一个看看就行,实际要用到了哪个,官网看看demo也就会用了.之所以选择jsRender,因为它具有以下特点: 简单直观 功能强大 可扩展的 快如闪电 当然,谁都会自己给自己的产品下这样定义.不过我用完后,确实发现它:简单直观.功能强大.扩展性强:至于

前端渲染利器——JsRender入门

JsRender不少前端人员应该都用过,它是一个比较强大的模板,不牵涉太多技术依赖,使用起来非常舒服.我本人在前端开发中使用React之前,都是用的它了(实际上我感觉React没有JsViewes好用).不管怎么说,先来学习下JsRender技术吧,如果前端的开发环境比较单纯,还是很适合的. 一.JsRender特性 新一代的前端渲染模板 使用模板,可以预先自定义一些固定格式的HTML标签,在需要显示数据时,再传入真实数据组装并展示在Web页中:这避免了在JS中通过“+”等手动分割.连接字符串的

JsRender实用教程(tag else使用、循环嵌套访问父级数据)

前言: 正在做angularJs的分页功能时,发现了JsRender这个插件,园子里的大神多,查到一个用JsRender实现的分页demo,地址是这个 http://www.cnblogs.com/sword-successful/p/4759027.html#3379766 查了一下相关的基本资料 下面是引自http://www.ziliao1.com/article/show/0c5ac83aeac0a1fc6af388817c52b6c0.html JsRender是一款基于jQuery的

ASP.NET MVC分页 Ajax+JsRender

前段时间整mvc的分页,倒是很顺利,参考了以下几篇博客,启发很大. http://www.cnblogs.com/tangmingjun/archive/2012/05/30/2526301.html http://www.cnblogs.com/tangmingjun/archive/2012/05/31/2528732.html 顺便扩展了需求,在分页的基础上,继续做关键字查询. 用PagedList生成的页码链接虽然样式很漂亮,但是要做到无刷新的分页,PagedList自动生成的代码是不够