我正在尝试使用带有主干的简单内联underscore.js模板,并通过jQuery的<script>
方法从html()
标记中提取模板。
该页面应该为配方模型返回的每个配方标注呈现多个配方标注。它适用于第一个缩略图,但在第二个缩略图上,<script>
标记似乎已从DOM中删除,因此下划线无法呈现它并使用str is null on line 913
对于模板,我有
<script type="text/html" id="user-recipe-rated-template">
<div class="user-recipe-rated">
<a class="thumb" href="<%= href %>"></a>
<p><%= title %></p>
</div>
</script>
骨干视图如下:
var UserRecipeView = Backbone.View.extend({
initialize : function() {
this.template = _.template($("#user-recipe-rated-template").html());
},
render : function()
{
this.el = this.template({
title: this.model.get("Title"),
href: '#'+this.model.get('UserContentId'),
image_src: this.model.get('ThumbnailSrc')
});
return this;
}
});
所以,我看到的是第一个缩略图上存在$("#user-recipe-rated-template")
,一切都很好。在第二个,它返回一个空数组,下划线无法继续。
我正在尝试记忆html等字符串,这可能有用,但似乎应该有一种更清洁的方法。我做错了什么?
(我现在想使用内联模板而不是外部JST来保持简单 - 当数据进入时,将模板嵌入到页面附近的位置似乎更好