2011-02-20 20 views
14

Có thể xác định biến mới trong khuôn mẫu jquery không? Tôi đã đọc tài liệu mẫu jquery chính thức nhưng không thể tìm thấy bất cứ điều gì về điều này. Tôi đã thử một cái gì đó như {{ var xxx=123 }} nhưng nó không hoạt động. Cuối cùng tôi đang sử dụng một hack bằng cách làmxác định biến mới trong khuôn mẫu jquery

${$item.xxx=123,""}

và sau đó sử dụng

$item.xxx

nhưng tôi chắc chắn nó không phải là phương pháp tốt nhất ...

+0

Câu hỏi của bạn là một câu trả lời tốt :) – merlinbeard

Trả lời

19

I don' Tôi nghĩ rằng làm cách tiếp cận mục $ là quá xấu. Nó phù hợp với nơi bạn sẽ tìm kiếm các biến được truyền qua thông số tùy chọn tới $ .tmpl.

Một cách tiếp cận khác mà tôi đã sử dụng, dựa trên một mẹo nhỏ here, là thực sự xác định thẻ mẫu "var".

Chỉ cần làm:

$.extend($.tmpl.tag, { 
    "var": { 
     open: "var $1;" 
    } 
}); 

Sau đó, bạn có thể sử dụng nó trong các mẫu của bạn như:

{{var xxx=123}} 
... 
<div>${xxx}</div> 

Ngoài ra, bài viết trên blog đẹp ở đây trên tùy chỉnh jquery template tags: http://blog.sterkwebwerk.nl/2010/12/15/custom-jquery-template-tags-1/

+3

Và đối với thiết lập các biến có lẽ là '$ .extend ($. tmpl.tag, {" setvar ": {mở:" $ 1; "}});' – Gavin

2

Bạn có thể mở rộng mẫu jquery với thẻ eval

$.extend($.tmpl.tag, { "eval": { open: "$1;"} }); 

và sử dụng

{{eval var xxx = 123}} 
{{eval xxx += 23}} 
1

tôi làm:

${xxx=13, ""} 

và sau đó tôi có thể sử dụng xxx trong một tiểu hoặc trong cùng một mẫu

+0

jquery.tmpl tạo các biến này trong ngữ cảnh chung. 'xxx' sẽ là biến toàn cục. – Ikrom

Các vấn đề liên quan