成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

TrimPath 模板引擎使用指南

開發 開發工具
macro 一般用來封裝可復用 HTML 模板,類似函數的功能。對于每個模板來說 macro 是私用的。

[[180688]]

TrimPath 是一款輕量級的前端 JavaScript 模板引擎,語法類似 FreeMarker, Velocity,主要用于方便地渲染 json 數據

語法 Syntax

表達式 Expressions

表達式和修飾符(其它模板語言中叫做過濾器 filter)中間用 | 分割且 不能有空格

  1. ${expr} 
  2. ${expr|modifier} 
  3. ${expr|modifier1:arg1,arg2|modifier2:arg1,arg2|...|modifierN:arg1,arg2} 

語句 Statements

控制流 Control Flow

  1. {if testExpr} 
  2.     {elseif testExpr} 
  3.     {else
  4. {/if} 

循環 Loops

  1. {for varName in listExpr} 
  2. {/for
  3.  
  4. {for varName in listExpr} 
  5.     ...循環主體... 
  6. {forelse} 
  7.     ...當 listExpr 是 null 或者 length 為 0 ... 
  8. {/for

變量聲明 Variable Declarations

變量聲明語句用花括號 {} 括起來,不需要關閉。類似 JavaScript 中的賦值語句

  1. {var varName} 
  2. {var varName = varInitExpr} 

宏聲明 Macro Declarations

  1. {macro macroName(arg1, arg2, ...argN)} 
  2.     ...macro 主體... 
  3. {/macro} 

CDATA 部分 CDATA Text Sections

CDATA 部分用來告訴模板引擎不用做任何解析渲染,直接輸出。比如展示一個模板字符串本身

  1. {cdata} 
  2.     ${customer.firstName} ${customer.lastName} 
  3. {/cdata} 

In-line JavaScript

eval blocks 用來執行 JavaScript 代碼片段

  1. {eval}  
  2. ...模板渲染的時候執行的 JavaScript 代碼...  
  3. {/eval 

minify blocks 用來壓縮內容中的換行符,比如壓縮 HTML 屬性

  1. <div id="commentPanel" style="{minify} 
  2.       display:none; 
  3.       margin: 1em; 
  4.       border: 1px solid #333; 
  5.       background: #eee; 
  6.       padding: 1em; 
  7.     {/minify}"> 
  8.   ... 
  9. </div> 

修飾符 Modifier

修飾符用來處理上一個表達式的結果,并輸出內容。類似于 Linux shell 中的 pipe 命名,可以串聯

  1. ${name|capitalize} 
  2. ${name|default:"noname"|capitalize} 

內置修飾符

  • capitalize 返回大寫內容
  • default:valueWhenNull 如果內容為 null,返回 valueWhenNull
  • eat 返回空內容,一般用于表達式求值后又不想展示輸出的內容
  • escape 轉換 HTML 字符實體,比如: & 轉換成 &
  • h 和 escape 效果一樣

自定義修飾符

算定義修飾符可以持載到 contextObject 上的 _MODIFIERS 屬性上

  1. var Modifiers = { toFixed: function(n, num) { return n.toFixed(num) } }  
  2. var out = '{var nu = 12}${nu|toFixed:2}'.process({ _MODIFIERS: Modifiers }); 

宏 Macro

macro 一般用來封裝可復用 HTML 模板,類似函數的功能。對于每個模板來說 macro 是私用的。如果想公用 macro,可以保存 macro 引用到 contextObject 上(下次調用 process() 方法的時候再手動掛載上!? )。需要在調用 process() 方法之前給 contextObject 設置一個空的 exported 屬性:contextObject['exported'] = {}這個公用的 macro 設計的有點奇葩,可以參考這個 示例

  1. {macro link(href, name)} 
  2.     <a href="${href}">${name}</a> 
  3. {/macro} 
  4.  
  5. ${link('http://google.com''google')}      => <a href="http://google.com">google</a> 
  6. ${link('http://facebook.com''facebook')}  => <a href="http://facebook.com">facebook</a> 

示例

  1. var data = { 
  2.     name'iPhone 6 Plus'
  3.     weight: 480, 
  4.     ram: '16gb'
  5.     networks: [ 
  6.         '移動(TD-LTE)'
  7.         '聯通(TD-LTE)'
  8.         '電信(FDD-LTE)' 
  9.     ] 
  10.  
  11. data._MODIFIERS = { 
  12.     toFixed: function(n, num) { 
  13.         return n.toFixed(num) 
  14.     } 
  15.  
  16. var template = '\ 
  17. 名稱: ${name}<br>\ 
  18. 重量:${weight|toFixed:2}<br>\ 
  19. 內存:${ram|capitalize}<br>\ 
  20. 網絡:\ 
  21. {for item in networks}\ 
  22.   {if item_index!=0}|{/if}\ 
  23.   ${item}\ 
  24. {/for}'; 
  25.  
  26. template.process(data) 

上面的代碼輸出:

  1. 名稱: iPhone 6 Plus<br> 
  2. 重量:480.00<br> 
  3. 內存:16GB<br> 
  4. 網絡: 
  5.   移動(TD-LTE) 
  6.  | 聯通(TD-LTE) 
  7.  | 電信(FDD-LTE) 

【本文是51CTO專欄作者周琪力的原創稿件,轉載請注明出處】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2009-11-30 13:15:27

PHP模板Smarty

2022-09-29 09:07:08

DataGrip數據倉庫數據庫

2021-07-27 10:09:27

鴻蒙HarmonyOS應用

2011-07-21 14:57:34

jQuery Mobi

2009-12-28 17:40:10

WPF TextBox

2010-09-06 14:24:28

ppp authent

2012-12-26 12:41:14

Android開發WebView

2010-06-03 17:27:36

Hadoop命令

2010-08-04 15:37:31

Flex圖表

2010-08-05 15:40:21

FlexBuilder

2009-12-31 17:17:45

Silverlight

2021-01-12 15:19:23

Kubernetes

2010-08-04 14:28:01

Flex組件

2022-06-23 08:01:36

FlaskSocketIOSwift

2019-11-13 12:39:26

Python 開發編程語言

2024-02-04 00:00:00

Loki性能查詢

2020-10-19 11:49:32

NodeJavaScript

2014-05-16 11:09:38

Handlebars模板引擎

2012-05-23 15:46:39

數字羅盤

2023-10-25 14:51:38

MySQL數據庫JSON
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久国产一区二区三区 | 久久在线 | 国产精品一区二区在线 | 热久久久 | 中文一区二区 | 久久宗合色 | 欧美在线视频一区 | 日韩高清成人 | 日韩欧美在线播放 | 久久新 | 丝袜毛片 | 日韩亚洲视频 | 午夜一级做a爰片久久毛片 精品综合 | 自拍 亚洲 欧美 老师 丝袜 | www.av在线 | 国产色99精品9i | 91极品欧美视频 | 台湾a级理论片在线观看 | 国产在线a | 97视频精品 | 羞羞视频一区二区 | 亚洲精品久久久久久久不卡四虎 | 成人精品一区二区三区中文字幕 | av天天澡天天爽天天av | 久久婷婷av | 黄色国产在线播放 | 国产日韩久久 | 久久久久国产一级毛片 | 久久国产精彩视频 | 成人午夜网站 | 黑人粗黑大躁护士 | 欧美日韩综合视频 | 91在线看片 | 亚洲毛片在线 | 精品国产一区二区三区观看不卡 | 久久久www成人免费无遮挡大片 | 午夜精品一区二区三区在线视 | 北条麻妃一区二区三区在线视频 | 亚洲精品一区二区三区蜜桃久 | 亚洲久久久 | www.9191.com |