上下文
在模板中,你可以使用一個名叫$context 的特殊變量,這與提案后面要描述的rendering和rendered回調(diào)是同一個對象。$context具有以下屬性:
參數(shù) |
描述 |
data |
傳遞給render()和append()函數(shù)的數(shù)組或?qū)ο?/td> |
dataItem |
但是,這個放到with() 塊中,使得數(shù)據(jù)的每一個字段可以直接使用。例如,如果數(shù)據(jù)為[{name:"dave"},{name:"bob"}] ,那么{%= name } 就可以使用。但是要注意,指向一個不存在的字段將是無效的。數(shù)據(jù)為[{name:"dave"},{firstname:"bob"}] ,那么第二個表達式“name”將無效。 |
index |
傳遞給模板的當前數(shù)據(jù)項在數(shù)組中的索引。如果是一個對象,索引為0 |
options |
傳遞給模板的選項參數(shù)。這個提供了給模板傳遞額外參數(shù)的方法。 |
你對$context 變量的修改在模板中將保持一致。例如,你可以在render()函數(shù)中給$context 變量添加計算字段。
function rendering(context) { context.tax = context.dataItem.price * 0.23; }
你可以在模板中使用tax計算字段,保持模板簡單,避免需要調(diào)試的內(nèi)嵌表達式。
<script type="text/html" id="tmp1"> The product with tax costs {%= $context.tax %} </script>
你可以使用$context.options變量指向任何需要傳遞給render()和append()函數(shù)的選項。下面的示例演示了如何根據(jù)傳遞給append()函數(shù)的showSalePrice 參數(shù)值來顯示正常價格或零售價格。
<script type="text/javascript"> jQuery(function() { var products = [ { name: "Product 1", price: 12.99, salePrice: 10.99 }, { name: "Product 2", price: 9.99, salePrice: 7.99 }, { name: "Product 3", price: 35.59, salePrice: 33.59 } ]; $("ul").append("#template", products, { showSalePrice: true }); }); </script> <script id="template" type="text/html"> <li> {%= name %} - {%= $context.options.showSalePrice ? salePrice : price %} </li> </script> <ul></ul>
注意如何在模板中根據(jù)$ context.options.showSalePrice屬性來顯示正常價格或零售價格。
出處:
責任編輯:moby
上一頁 jQuery模板提案 [7] 下一頁 jQuery模板提案 [9]
◎進入論壇網(wǎng)頁制作、WEB標準化版塊參加討論,我還想發(fā)表評論。
|