【发布时间】:2011-06-30 17:04:31
【问题描述】:
是否可以在 jquery 模板中定义新变量?
我阅读了官方的 jquery 模板文档,但在这方面找不到任何东西。
我尝试了{{ var xxx=123 }} 之类的方法,但没有成功。
最后我通过做
${$item.xxx=123,""}
及以后使用
$item.xxx
但我确信这不是最好的方法......
【问题讨论】:
-
你的问题是一个很好的答案:)
是否可以在 jquery 模板中定义新变量?
我阅读了官方的 jquery 模板文档,但在这方面找不到任何东西。
我尝试了{{ var xxx=123 }} 之类的方法,但没有成功。
最后我通过做
${$item.xxx=123,""}
及以后使用
$item.xxx
但我确信这不是最好的方法......
【问题讨论】:
我不认为使用 $item 方法太糟糕了。这与您在哪里查找通过 options 参数传递给 $.tmpl 的变量是一致的。
基于一个小技巧here,我使用的另一种方法是实际定义一个“var”模板标签。
只要做:
$.extend($.tmpl.tag, {
"var": {
open: "var $1;"
}
});
然后您可以在模板中使用它,例如:
{{var xxx=123}}
...
<div>${xxx}</div>
另外,关于自定义 jquery 模板标签的不错的博客文章:http://blog.sterkwebwerk.nl/2010/12/15/custom-jquery-template-tags-1/
【讨论】:
$.extend($.tmpl.tag, {"setvar": {open: "$1;"}});
你可以用eval标签扩展jquery模板
$.extend($.tmpl.tag, { "eval": { open: "$1;"} });
并使用
{{eval var xxx = 123}}
{{eval xxx += 23}}
【讨论】:
我愿意:
${xxx=13, ""}
然后我可以在 sub 或同一模板中使用 xxx
【讨论】:
xxx 将是全局变量。