Javascript 下划线.js模板呈现
我有这个示例代码,可以使用下划线模板呈现简单的unescapedHTMLJavascript 下划线.js模板呈现,javascript,backbone.js,underscore.js,underscore.js-templating,Javascript,Backbone.js,Underscore.js,Underscore.js Templating,我有这个示例代码,可以使用下划线模板呈现简单的unescapedHTML var template = $(this.el).html(_.template(this.template, {'data': '<script>'})); $(this.parent).append(template); 但当它尝试渲染时,会导致错误: 未捕获的TypeError:对象[Object Object]没有方法“replace” 有谁能告诉我原因是什么以及如何解决?因为在下划
var template = $(this.el).html(_.template(this.template, {'data': '<script>'}));
$(this.parent).append(template);
但当它尝试渲染时,会导致错误:
未捕获的TypeError:对象[Object Object]没有方法“replace”
有谁能告诉我原因是什么以及如何解决?因为在下划线文档中:
var template = _.template("<b><%- value %></b>");
template({value : '<script>'});
=> "<b><script></b>"
var-template=..template(“%-value%>”);
模板({value:'script'});
=>“脚本”
提前感谢。来自:
模板模板(templateString,[context])
将JavaScript模板编译成可以进行渲染评估的函数
\uU4.template
的第一个参数应该是字符串,而不是jQuery对象。的内部处理的一部分。模板
调用函数,这就是错误的来源。您可能希望改用此选项:
var template = $(this.el).html(_.template(this.template.html(), {'data': '<script>'}));
$(this.parent).append(template);
var-template=$(this.el).html(u.template(this.template.html(),{'data':'''}));
$(this.parent).append(模板);
演示:
你举的例子很好:
因此,我不知道“值”未定义的位置您在评论中提到的错误可能来自哪里。我在服务器上运行node时遇到了相同的错误。如果从磁盘读取模板文件,但未指定编码,则node.js将返回一个缓冲区。错误基本相同,因为下划线需要字符串。确保指定了编码,以便将字符串传递给下划线 这将产生错误
var template = _.template(fs.readFileSync('mytemplate.tpl'));
这很好
var template = _.template(fs.readFileSync('mytemplate.tpl', { 'encoding':'utf8'}));
这个模板是什么?字符串或DOM或jQuery对象?是的,它的jQuery对象。另外,当我试图使用下划线文档中的示例时,它也会抛出错误:“value”未定义,尽管我用字符串将其括起来。