【问题标题】:Backbone.js view + underscore.js templatesBackbone.js 视图 + underscore.js 模板
【发布时间】:2013-03-14 07:49:56
【问题描述】:

我有一个 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);
      }
    });

  },
});

仅渲染第一个模板,而不渲染第二个模板。我在这里做错了什么吗?

【问题讨论】:

    标签: backbone.js underscore.js


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      应该是

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

      【讨论】:

      • 嘿,谢谢 - 我解决了这个问题,但问题仍然存在。我正在调试。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-16
      • 2011-10-30
      • 1970-01-01
      • 1970-01-01
      • 2011-09-02
      • 2023-04-10
      • 2012-07-12
      相关资源
      最近更新 更多