artTemplate的空白输出坑
一、问题现象
<script type="text/html" id="man_template">{{each list as v i}}<tr><td>{{v.name}}</td><td>{{v.height}}</td><td>{{v.age}}</td></tr>{{/each}}
</script>
<script>var html=template("man_template",{list:[{name:'zhang',age:18,height:'180cm'}]});console.log(html);
</script>
输出:编译后完全没有信息
原因:{{each list as v i}}此行多了个空格
二、artTemplate解析器的坑
e.parser = function (a) {a = a.replace(/^\s/, "");var b = a.split(" "), c = b.shift(), e = b.join(" ");switch (c) {case"if":a = "if(" + e + "){";break;case"else":b = "if" === b.shift() ? " if(" + b.join(" ") + ")" : "", a = "}else" + b + "{";break;case"/if":a = "}";break;case"each":var f = b[0] || "$data", g = b[1] || "as", h = b[2] || "$value", i = b[3] || "$index", j = h + "," + i;"as" !== g && (f = "[]"), a = "$each(" + f + ",function(" + j + "){";break;case"/each":a = "});";break;case"echo":a = "print(" + e + ");";break;case"print":case"include":a = c + "(" + b.join(",") + ");";break;default:if (/^\s*\|\s*[\w\$]/.test(e)) {var k = !0;0 === a.indexOf("#") && (a = a.substr(1), k = !1);for (var l = 0, m = a.split("|"), n = m.length, o = m[l++]; n > l; l++) o = z(o, m[l]);a = (k ? "=" : "=#") + o} else a = d.helpers[c] ? "=#" + c + "(" + b.join(",") + ");" : "=" + a}return a}
以下此行只使用单一空白分隔编译模板语法,输入多空格将导致b数组含有空串。
var b = a.split(" "), c = b.shift(), e = b.join(" ");
artTemplate的空白输出坑相关推荐
- python输出乘法口诀-【每日一练】python输出 9*9 乘法口诀表
原标题:[每日一练]python输出 9*9 乘法口诀表 无论学哪种程序,哪一门语言都对输出9*9 乘法口诀表情有独钟,记得学VB的时候,需要好长一段代码才实现,那么你知道用Python输出,需要几行 ...
- python编码口诀_【每日一练】python输出 9*9 乘法口诀表
程序分析:分行与列考虑,共9行9列,i控制行,j控制列. 第一行: for i in range(1, 10): 创建一个从1到9的循环,并依次赋值给i 第二行: print() 这个是Python ...
- C++中 char* 、string、 char、char[]在各种情况下的输入与输出
之前在自己练手写代码的时候总是会在字符串,字符这一块卡住,今天写下这篇文章给自己长长记性! 其实在代码过程中会遇到很多很玄学的问题.刚刚在尝试的时候找到了之前写的测试字符串的程序,放到另外一个工程里跑 ...
- 用Gitee Pages服务在线预览vue3前端项目:静态网站+多级路由+history模式(踩坑)
目录 目标与前提 vue打包.预览遇到的坑以及原因 坑①:静态网站打开一片空白 坑②:子路由刷新或直接输入时,网页一片空白或404 坑③:首页加载时间过长 坑④:线上预览地址出错时,不显示404页面 ...
- php内置常用函数是哪些,PHP常用函数有哪些
PHP常用函数有哪些 导语:PHP主要通过函数实现一些功能,那PHP常用函数有哪些呢?下面就由小编为大家介绍一下,欢迎大家阅读! 数学函数 1.abs(): 求绝对值 $abs = abs(-4.2) ...
- 循环神经网络(RNN)简介
人工神经网络介绍参考: https://blog.csdn.net/fengbingchun/article/details/50274471 卷积神经网络介绍参考: https://blog.csd ...
- Python外壳:代码结构!(推导式和函数 )
推导式: 推导式是一个或者多个迭代器快速简洁的创建数据结构的一种方法. 它可以将循环和条件判断结合,从而避免语法冗长的代码. 悄悄告诉你,会使用推导式.很大程度上说明,你已经超过许多初学者啦· 也就是 ...
- 笨办法学python47 原理_41:学会说面向对象
# 练习41.学会说面向对象 在这个练习中,我要教你如何说"面向对象",我要给你一些你需要知道定义的词.然后我会给你一组你必须了解的句子,最后我会给你一大堆练习,你必须完成这练习题 ...
- 深度学习笔记 第五门课 序列模型 第三周 序列模型和注意力机制
本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...
最新文章
- 20 年坚守,不忘初心!一封来自程序员的感谢信!
- 史上最快! 10小时大数据入门实战(五)-分布式计算框架MapReduce
- Java并发编程-并发工具包java.util.concurrent使用指南
- 百练OJ:2965:玛雅历
- 陌上花开 HYSBZ - 3262 (CDQ分治)
- datagrid 什么时候结束编辑_孕吐到底什么时候结束
- cpu负载转移内存_为什么将所有工作负载转移到云中是个坏主意
- 为什么很多人上班好好的,却选择去创业?
- 配置登入是显示服务器信息
- 2008.10 井冈山-金秋 【律动音符篇】
- Beta阶段第四次Scrum Meeting
- python之作业--------购物车优化
- 计算机数字合成音乐,数字音乐合成原理
- 物联网智能硬件解析之万能空调遥控器实现 Ardunio_通过红外线发射灯遥控空调
- 惠普电脑u盘重装系统步骤_惠普电脑重装系统图文教程
- Python爬取城市二手房数据
- VS2019 团队资源管理器--Git的使用(二)
- 论坛报名 | DataFunCon:用户画像论坛
- java list移除所有元素_Java - List集合中如何删除多个元素? remove( )方法 ?
- 饥荒控制台输入没用_饥荒联机版代码怎么用 代码输入没用解决方法
热门文章
- leetcode206. 反转链表
- linux开发亿连手机互联,亿连手机互联车载版下载-亿连手机互联车机版v6.6.1 安卓版-腾牛安卓网...
- [剑指offer]面试题34:丑数
- [蓝桥杯][历届试题]九宫重排-双向bfs和map标记
- Oulipo HDU - 1686(哈希或KMP)匹配字符串
- python升级pip在哪儿打开_Linux下升级python和安装pip的详解
- CoreJava 笔记总结-第九章 集合
- python中函数的参数类型( 位置参数、关键字参数、默认值参数和可变长度参数)
- 小 Q 与树(dsu on tree + segment tree)牛客练习赛 81 D
- 【NOI2020】命运【树形dp】【线段树合并】