您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

JavaScript下划线模板抛出变量未定义错误

JavaScript下划线模板抛出变量未定义错误

您曾经能够一口气解析并填写Underscore模板,如下所示:

var html = _.template(template_string, data);

但是从Underscore 1.7.0开始,第二个参数_.template包含模板选项:

_.template(templateString, [settings])

将JavaScript模板编译为可以评估以进行渲染的函数。[…] 参数应为包含任何_.templateSettings应覆盖的哈希值。

您必须使用编译模板_.template,然后执行返回的函数来填写模板:

var tmpl = _.template(template_string);
var html = tmpl(data);

// or as a one-liner, note where all the parentheses are
var html = _.template(template_string)(data);

在您的情况下,它看起来像这样:

var V = Backbone.View.extend({

  el:'body',

  render: function () {

    var data = { lat: -27, lon: 153 };

    var tmpl = _.template('<%= lat %> <%= lon %>');

    this.$el.html(tmpl(data));

    return this;

  }

});



var v = new V();



v.render();


<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>



<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<script src="//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.0/backbone-min.js"></script>
javascript 2022/1/1 18:13:43 有469人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶