3

我正在使用 Backbone 0.9.2,并且我有一个使用 twitter 引导程序的小胡子模板,看起来像这样:

<div class="modal hide something" id="something-modal">
...
</div>

我试图摆脱<div>主干添加的额外内容,因为我希望视图是 1 对 1 作为我的模板。我的渲染函数看起来像:

render: function(){

    var $content = $(this.template()),
          existing_spots = $content.find('.spots-list'),
          new_spot;

      this.collection.each(function (spot) {
          new_sweetspot = new SpotView({ model: spot });
          existing_spots.append(new_spot.render().el);
      });

      $content.find("[rel=tooltip]").tooltip();
      this.setElementsBindings($content);
      //this.$el.html($content).unwrap('div'); // didn't work!
      this.$el.html($content);
      console.log(this.$el); 
      return this;
    }

我知道通过添加:

tagName: "div",
className: "modal",

我会摆脱它,但我希望视图元素的控制属于模板,而不是 JS 代码。

this.SetElement将导致列表不更新(它将为空),this.$el = $content;也不会工作。

4

1 回答 1

2

上周在 SO 上有一个很好的话题。

主干,而不是“this.el”包装

tl; dr您可以使用setElement,但您确实需要知道主干中何时发生事情,以确保一切都正确连接。

于 2012-07-29T11:52:08.713 回答