Javascript 将变量从主干视图发送到jade模板
我的index.jade中有以下模板:Javascript 将变量从主干视图发送到jade模板,javascript,node.js,backbone.js,pug,Javascript,Node.js,Backbone.js,Pug,我的index.jade中有以下模板: .... <script type="text/template" id="sample-template"> a(href="<%= link.href %>") <%= link.title %> </script> .... 现在,当我渲染该模板时,我得到以下输出: <a href="<%= link.href %>"> sample link 示例链接 你看,我得到了
....
<script type="text/template" id="sample-template">
a(href="<%= link.href %>") <%= link.title %>
</script>
....
现在,当我渲染该模板时,我得到以下输出:
<a href="<%= link.href %>"> sample link
示例链接
你看,我得到了
title
变量的正确输出。但问题在于href
。它没有打印link.href
的值,最后我发现了它的问题所在。由于jade
是一个与节点
一起工作的模板引擎(实际上在服务器端),因此它在客户端使用方面缺乏支持。因此,当您使用下划线函数编译jade
模板时,您不能期望函数模板文件。
但有一种替代方法可以将变量从主干视图发送到jade模板。您可以创建一个助手函数,在jade模板中打印您想要的内容
....
var SampleView = Backbone.View.extend({
template: _.template($('#sample-template').html()),
render: function() {
this.$el.append(this.template({
link: this.model.toJSON(),
ahref: this.ahref
}));
return this;
},
ahref: function( href, title ) {
return '<a href=' + href + '>' + title + '</a>';
}
});
....
....
<script type="text/template" id="sample-template">
ahref(link.href, link.title);
</script>
....
您是否尝试过从href分配中删除双引号?请参阅答案。@pdoherty926是的,我删除了双引号,得到了以下错误:意外标记
....
<script type="text/template" id="sample-template">
ahref(link.href, link.title);
</script>
....