extjs之模板分析深入

既然上篇我们已经抓到了精髓,那么这次要加快进度了。

Template-more.js文件里代码依旧少得可怜,所以我们一眼就认出了applyTemplate和compile这两个老朋友,虽然改头换面了一番,但那无与伦比的气质依然深深出卖了它们。

首先我们来看applyTemplate函数,上回这个函数只是一笔带过,当将compiled设为false时,将调用这个函数直接产生结果。这在模板实例用的次数不多的情况下是没问题的,但这里再强调一次,如果频繁使用相同实例(确切地说,是模板实例的html字符串保持不变),务必将compiled设为true。下面贴函数定义(话说这次可以贴代码了):

  

 该函数结构简单,主体定义了replace要用到的局部函数fn,它的参数相较之前多了两个,format和args,表示格式化函数和参数。me.re也更加复杂,//{([/w-]+)(?:/:([/w/.]*)(?:/((.*?)?/))?)?/}/g,分析的方法和上回讲的一样,不过要注意的是包含'?:'的小括号内容为非捕获分组,即匹配的内容不作为参数传给fn。另外还有个知识点:*?,限定符后面加一个问号,表示在匹配成功的前提下,匹配的字符串尽可能短。此处相当于如果出现类似'(("params")))'会匹配到"params",而不是错误的'("params"))'。

再来看compile函数。

结合上一讲,可以很容易分析出最后生成的是什么东东。留给大家课后作业吧。


哎,这次好像也没讲到什么新的内容,只不过是逻辑更加复杂一点,不过我这人比较随性,制定计划的时候也没有考虑到什么深入浅出那么高深的东西。毕竟我还是菜鸟,只求自己能懂就谢天谢地了。下回分析XTemplate.js,那个文件定义的类继承Ext.Template,增加了内联逻辑功能——循环、判断、执行以及数据域的访问。那么,下回见吧。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值