内联嵌套 jQuery 模板 -- {{tmpl}}
为了使用 jQuery 模板
$.tmpl('<div>Hello <ul>{{tmpl(persons) "<li>${name}</li>"}}</ul></div>', {persons: [
{name: 'Tom'},
{name: 'Fred'}
]}).appendTo('body');
问题是这个 http://jsfiddle .net/abernier/87dRV/ 不起作用:/
我不太明白为什么,因为文档说
template HTML 标记或用作模板的文本。
任何帮助表示赞赏:)
--
显然我可以:
$.tmpl('<div>Hello <ul>{{each(i, name) persons}}<li>${name}</li>{{/each}}</ul></div>', {persons: [
{name: 'Tom'},
{name: 'Fred'}
]}).appendTo('body');
但我更喜欢在这里使用 {{tmpl}}
。
In order to render a <ul>
list with jQuery templates, I'd like to use {{tmpl}}
sub-template tag, passing it an array of names to build my <li>
s:
$.tmpl('<div>Hello <ul>{{tmpl(persons) "<li>${name}</li>"}}</ul></div>', {persons: [
{name: 'Tom'},
{name: 'Fred'}
]}).appendTo('body');
The problem is this http://jsfiddle.net/abernier/87dRV/ does not work :/
I don't really understand why since the documentation says
template The HTML markup or text to use as a template.
Any help appreciated :)
--
Obviously I can:
$.tmpl('<div>Hello <ul>{{each(i, name) persons}}<li>${name}</li>{{/each}}</ul></div>', {persons: [
{name: 'Tom'},
{name: 'Fred'}
]}).appendTo('body');
But I'd have prefered using {{tmpl}}
here.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我还没有调试到为什么你的情况会出错,但是作为替代方案怎么样:
使用内联模板的替代方案:
当 jQuery 模板插件在其中看到自己的分隔符时,它会感到困惑。只需要把它分成多个字符串即可。
I did not debug down yet to the point of seeing why your case is erroring out, but how about this as an alternative:
Alternative that uses an inline template:
The jQuery template plugin gets confused when it sees its own delimiters in it. Just need to break it up into multiple strings.