1 | # smarty模版
|
2 |
|
3 | ## 设计原则
|
4 | 让前端来写后端的smarty模板,并且前端不需要搭建各种繁杂的后端环境,另外模板的数据源可以在项目开始前前后端约定之后生成JSON文件,从而使两个角色并行开发。
|
5 |
|
6 | ## 使用方法:
|
7 | <div>1、将widget中的模版扩展名改为`.smarty`</div>
|
8 | <div>2、将模版需要渲染的数据,放在当前widget下的`.json`文件或者widget标签的data属性中</div>
|
9 | <div>3、引用方式:`{%widget name="test"%}`</div>
|
10 | <div>4、单独引用模版:`{%widget name="test" tydive="smarty"%}`</div>
|
11 |
|
12 | ## smarty基本语法
|
13 | * 变量
|
14 | Smarty有几种不同类型的变量,变量的类型取决于它的前缀是什么符号(或者被什么符号包围)
|
15 | Smarty的变量可以直接被输出或者作为函数属性和修饰符(modifiers)的参数,或者用于内部的条件表达式等等。
|
16 | 如果要输出一个变量,只要用定界符将它括起来就可以,例如:
|
17 | ```text
|
18 | {$Name}
|
19 | {$Contacts[row].Phone}
|
20 | ```
|
21 |
|
22 | * if,else判断
|
23 | ```text
|
24 | {if $name eq "Fred"}
|
25 | Welcome Sir.
|
26 | {elseif $name eq "Wilma"}
|
27 | Welcome Ma'am.
|
28 | {else}
|
29 | Welcome, whatever you are.
|
30 | {/if}
|
31 | ```
|
32 |
|
33 | * selection循环遍历
|
34 | 模板的section用于遍历数组中的数据。section标签必须成对出现,必须设置name和 loop属性。名称可以是包含字母、数字和下划线的任意组合,可以嵌套但必须保证嵌套的 name唯一。
|
35 | 变量loop(通常是数组)决定循环执行的次数。当需要在section循环内输出变量时,必须在变量后加上中括号包含着的name变量。
|
36 | ```text
|
37 | {section name=customer loop=$custid}
|
38 | id: {$custid[customer]}<br>
|
39 | {/section}
|
40 |
|
41 | OUTPUT:
|
42 |
|
43 | id: 1000<br>
|
44 | id: 1001<br>
|
45 | id: 1002<br>
|
46 | ``` |
\ | No newline at end of file |