Ext.XTemplate的語法
Ext.XTemplate是Ext中關于頁面模板的一個組件。用來將數據和模板組合出最終的html。所謂數據指的是javascript的對象。EMP在loadEntityToPage中使用了這個組件。舉例如下;
1
//javascript,我們要展現的javascript對象,這個對象一般來說是從后臺取回來的
2
3
//這是我的javascript對象表示
4
{
5
id:"1232132132dfasf121r",
6
name:"zcg",
7
age:13,
8
goodPerson:true, //好人一個
9
head:{
10
size:15,
11
type:"smart" //腦袋是聰明的
12
}
13
hands:
14
[
15
{
16
id:"123",
17
type:"left" //左手
18
}
19
{
20
id:"456",
21
type:"right"
22
}
23
]
24
}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

//html 模板
1
<div id="template">
2
<span>編號:{id}</span>
3
<span>名字:{age}</span>
4
</div>

2

3

4

在模板中,用“{}”括起來的內容,被當作是數據對象的一個屬性。例如{id},會被替換成為數據對象的id,以此類推。
問題來了,按照上面的例子,如果你在模板中寫一個{head.type},想把腦袋的類型也顯示出來,這時候會發現出錯了。原因是模板中不支持用{a.b}的方式表示嵌套屬性。那么怎么辦呢。分為兩種情況:
如果你從后臺取回來的數據只有一個,那么這樣寫:{[values.head.type]}。
如果你從后臺取回來的數據不只一個:那么這樣寫:{[values[xindex].head.type}}
語法解釋:“{[]}”括起來的東西會被當作javascript執行,其中有幾個特殊的字符,values代表數據對象,如果數據對象是數組,那么用xindex代表當前索引。
關于Ext.Template更多的信息:http://extjs.com/deploy/dev/docs/?class=Ext.XTemplate