下划线模板已从DOM中删除,因此无法重复使用

时间:2012-03-26 19:11:48

标签: backbone.js javascript underscore.js

我正在尝试使用带有主干的简单内联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来保持简单 - 当数据进入时,将模板嵌入到页面附近的位置似乎更好

0 个答案:

没有答案