0

我有一个 div 容器元素,在这个容器元素中我有多个模板。我想根据从后端返回的 json 有选择地加载模板。这是一个微不足道的问题,但面临这样做的问题。一些逻辑代码。

<div id = "container">
  <div class = "row page">
    <script type = "text/template" id = "template1">
      <div id = "template1_id">
      </div>
    </script>
    <script type = "text/template" id = "template2">
      <div id = "template2_id">
      </div>
    </script>
  </div>
</div>

在我的主干视图中,我正在做类似的事情:

var someView = Backbone.view.extend({
  el: '.page'
  render: function() {
    el: '.page';
    var template1 = _.template($('#template1').html());
    this.$el.html(template1);
    //get Json from backend and render the template within the fetch method
    var collection1 = new someCollection();
    someCollection.url = "blah";
    someCollection.fetch ( function() {
      success: function() {
        var template2 = _.template($('#template2').html());
        $('#template1_id').html(template2);
      }
    });

  },
});

只有第一个模板被渲染,而不是第二个。我在这里做一些根本错误的事情吗?

4

2 回答 2

1

如果您将两个模板都渲染到一个容器中,则应该使用$.append,而不是$.html,因此两者都会被附加。

于 2013-03-14T08:02:51.237 回答
0

你有一个错字(不匹配的报价)

$('#template1_id").html(template2);

应该

$("#template1_id").html(template2);
于 2013-03-14T07:58:34.757 回答