handlebars.js 注册if扩展
来源:互联网 发布:金融数据分析知乎 编辑:程序博客网 时间:2024/05/29 03:31
handlebars 对if 判断的能力较弱,往往难以满足项目要求,可以通过注册if 来达到要求,如下:
define(['handlebars'], function (handlebars) { //注册判断器 handlebars.registerHelper('ifCond', function (v1, operator, v2, options) { switch (operator) { case '!=': return (v1 != v2) ? options.fn(this) : options.inverse(this); break; case '==': return (v1 == v2) ? options.fn(this) : options.inverse(this); break; case '===': return (v1 === v2) ? options.fn(this) : options.inverse(this); break; case '<': return (v1 < v2) ? options.fn(this) : options.inverse(this); break; case '<=': return (v1 <= v2) ? options.fn(this) : options.inverse(this); break; case '>': return (v1 > v2) ? options.fn(this) : options.inverse(this); break; case '>=': return (v1 >= v2) ? options.fn(this) : options.inverse(this); break; case '&&': return (v1 && v2) ? options.fn(this) : options.inverse(this); break; case '||': return (v1 || v2) ? options.fn(this) : options.inverse(this); break; case 'length': return v1.length === v2 ? options.fn(this) : options.inverse(this); break; default: return options.inverse(this); break; } }); //注册计算器 handlebars.registerHelper('math', function (v1, operator, v2) { if (operator == '+') { return v1 + v2; } if (operator == '-') { return v1 - v2; } if (operator == '*') { return v1 * v2; } if (operator == '/') { return v1 / v2; } if (operator == '%') { return v1 % v2; } }); //表格序号索引+1 handlebars.registerHelper('addOne', function (index) { //返回+1之后的结果 return index + 1; });})
示例:
<script id="listTemplate" type="text/x-handlebars-template"> {{#ifCond list 'length' 0}} <div class="info-tip no-data-tip min-h500"> <img src="<c:url value='/img/client/no-data-tip.png'/> " alt=""> <p>很抱歉,没有找到相关结果</p> </div> {{else}} <ul class="notebook-list"> {{#each list}} <li> <h3> <i class="star js-cancel" js-category-id="{{id}}"></i> <a href="<c:url value='/client/note/detail/{{id}}'/>" target="_blank">{{title}}</a> {{#ifCond attachmentFlag '==' 1 }} <span class="favorite-icon"></span> {{/ifCond}} </a> </h3> {{#if scaleImgUrl}} <div class="thumbnail"> <img src="{{substring scaleImgUrl}}"> </div> {{/if}} <div class="item-summary ellips_line3">{{summary}}</div> <div class="item-foot"> <span>分类:{{categoryName}}</span> <span>作者:{{author}}</span> <span>创建时间:{{prettifyDate createTime}}</span> <span>编辑时间:{{prettifyDate operateTime}}</span> <span>赞:{{praiseCount}}</span> <span>评论:{{commentCount}}</span> </div> </li> {{/each}} </ul> {{/ifCond}}</script>
1 0
- handlebars.js 注册if扩展
- Handlebars.js if 功能扩展
- Handlebars辅助函数if的扩展
- js模版引擎handlebars.js实用教程——if-判断的基本用法
- js模版引擎handlebars.js实用教程——由于if功力不足引出的Helper
- js模版引擎handlebars.js实用教程——由于if功力不足引出的Helper
- js模板引擎库mustache中类似if判断的处理 及handlebars.js
- js模版引擎handlebars.js实用教程——if-判断的基本用法
- handlebars-----if的基本用法
- Handlebars js模版
- Handlebars js模版
- Handlebars.js 中文文档
- handlebars.js笔记
- Handlebars.js 模板引擎
- Handlebars.js 使用入门
- 模板引擎 Handlebars.js
- Handlebars.js 表达式
- Handlebars.js 预编译
- Elasticsearch 5 Ik+pinyin分词配置详解
- 【软件测试】负载测试与压力测试的区别
- json/bean/list转换
- flume MemoryChannel分析
- iOS xib和代码关联使用
- handlebars.js 注册if扩展
- JavaScript简介
- HDU 1025
- 查看LINUX系统版本是32位还是64位
- android webview显示网页空白问题
- 关于ReactNative环境搭建中的坑
- bzoj 1061
- PCA算法(Principal Components Analysis,主成份分析)
- Yii搜索分页加验证码