我看到有一种语法可以让一个私有的模板帮助器,但是有相反的语法吗?我有一个使用特定模板的标签,该模板(逻辑上讲)仅由标签使用。
$.templates({
link_template: "<a href='{{:link}}' class='{{:klass}}'>{{:text}}</a>"
});
$.views.tags({
link_to: function (link, klass, text) {
return $.render.link_template({link: link, klass: klass, text: text});
}
});
我认为模板只是一个字符串,但随后会在每次调用时编译。我希望得到编译模板的好处(基本上,我现在所拥有的 - 我只是想以某种方式隐藏标签内的模板)。
答案 0 :(得分:1)
以下是一些变体:
$.views.tags({
link_to1: {
template: "<a href='{{:link}}' class='{{:klass}}'>{{:text}}</a>"
},
link_to2: {
render: function (link, klass, text) {
return this.template.render({link: link, klass: klass, text: text});
},
template: "<a href='{{:link}}' class='{{:klass}}'>{{:text}}</a>"
},
link_to3: {
render: function (link, klass, text) {
return this.myTemplate.render({link: link, klass: klass, text: text});
},
myTemplate: $.templates("<a href='{{:link}}' class='{{:klass}}'>{{:text}}</a>")
}
});
在每种情况下,模板只会被编译一次,并且将是私有的。
第一种情况和第二种情况类似,但第二种情况允许您以编程方式控制渲染。编译标记时完成编译。
第三个让你拥有几个私人模板......