下划线模板错误:“变量未定义”
在提供的 Backbone.js 示例中,使用下划线时遇到错误模板。错误消息显示“变量未定义”。为了理解这个问题并解决它,让我们深入研究一下 Underscore 模板的用法。
在旧版本的 Underscore(版本 1.7.0 之前)中,_.template 函数的第二个参数用于提供模板的数据。这允许使用简洁的语法,其中模板和数据可以在一行中指定。
但是,从 Underscore 版本 1.7.0 开始,_.template 的第二个参数已被重新调整用途以适应模板选项。这意味着以前直接在第二个参数中指定数据的方法不再有效。
要解决此问题,需要使用 _.template 函数编译 Underscore 模板,然后执行生成的函数获取填写好的模板。正确的语法是:
var tmpl = _.template(template_string); var html = tmpl(data);
在提供的 Backbone.js 示例中,以下代码将解决错误:
render: function () { var data = { lat: -27, lon: 153 }; var tmpl = _.template('<%= lat %> <%= lon %>'); this.$el.html(tmpl(data)); return this; }
通过先编译模板,然后执行加上指定的数据,“变量未定义”的错误将被消除,使模板能够渲染正确的内容。
以上是为什么我的 Backbone.js 代码中出现'下划线模板错误:变量未定义”?的详细内容。更多信息请关注PHP中文网其他相关文章!