通常在骨干/下划线模板中,我们有模板
<script type="text/template" id="something">
<%=value%>
</script>
当我们在视图中实例化它时,我们得到包含在元素中的内容。所以下面的陈述
template: _.template($('#something').html()),
将产生类似
的标记<div>MyValueHere</div>
我想要做的是在模板中指定包装元素 即。
<script type="text/template" id="something">
<div>
<%=value%>
</div>
</script>
所以在打电话时
template: _.template($('#something').html()),
我想要的结果是
<div>
MyValueHere
</div>
而不是以下(这是将模板包装在主干视图中找到的标签中的结果)
<div>
<div>
MyValueHere
</div>
</div>
任何想法如何有效地做到这一点?如果不是太麻烦,我真的很感激jsFiddle。
答案 0 :(得分:1)
render
中的常见模式如下所示:
render: function() {
this.$el.append(this.template(...));
return this;
}
但您可以使用append
调用替换通常的setElement
来电,将视图el
替换为您自己的render: function() {
this.setElement(this.template(...));
return this;
}
:
<div>
演示:http://jsfiddle.net/ambiguous/t977y/
在this.el
来电之前,您仍会在setElement
内创建{{1}},但这可能并不重要。