Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将变量从主干视图发送到jade模板_Javascript_Node.js_Backbone.js_Pug - Fatal编程技术网

Javascript 将变量从主干视图发送到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 示例链接 你看,我得到了

我的index.jade中有以下模板:

....
<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>
....