2011-02-20 117 views
14

是否有可能在jQuery模板中定义一个新变量? 我阅读官方的jquery模板文档,但无法找到任何关于此的信息。 我试过类似{{ var xxx=123 }}但它没有奏效。 最后我使用的是黑客通过做在jQuery模板中定义新变量

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

,然后再使用

$item.xxx

,但我相信它是不是最好的方法......

+0

你的问题是一个很好的答案:) – merlinbeard

回答

19

我不我认为做$ item方法太糟糕了。它与你在哪里查找通过options参数传递给$ .tmpl的变量是一致的。

另一种基于小提示here的方法是实际定义一个“var”模板标签。

只要做到:这里

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

而且,好的博客贴子定制的jQuery模板标签:

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

然后你可以使用它在你的模板一样http://blog.sterkwebwerk.nl/2010/12/15/custom-jquery-template-tags-1/

+3

而对于设置变量可能是'$ .extend($ .tmpl.tag,{“setvar”:{open:“$ 1;”}});' – Gavin

2

你可以用eval标签扩展jQuery模板

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

,并使用

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

我做的:

${xxx=13, ""} 

,然后我可以在子或在同一模板中使用XXX

+0

jquery.tmpl在全局上下文中创建这些变量。 'xxx'将是全局变量。 – Ikrom