【问题标题】:What are el and $el in backbone's view?在骨干网看来,el 和 $el 是什么?
【发布时间】:2016-05-08 20:48:03
【问题描述】:

我试图避免在主干中渲染视图时使用空 div 进行包装。 我用下面的代码来做

this.$el.replaceWith(this.template(this.model.attributes));
return this;

但是当我通过

附加此视图时,我得到了空 div
$("#product-pannel").append(productsView.render().el);

有人给出这样的解决方案

render: function(){
    var html = this.template(this.model.toJSON()));
    var newElement = $(html)
    this.$el.replaceWith(newElement);
    this.setElement(newElement);
    return this;
}

但我不明白为什么我要在上面这么复杂地做这个 有人能告诉我el$el 的奥秘吗?

【问题讨论】:

    标签: javascript backbone.js zepto


    【解决方案1】:

    el 指向视图元素(包含模板其余部分的元素),$el 是一个代表el 元素的jQuery 对象,因此您不必一直使用$(this.el)

    文档中明确提到了这一点。

    您可以使用el 选项将现有的 DOM 元素指定为视图元素,或者骨干网为每个视图创建一个 DOM 元素。默认情况下,这将是<div>。如果您不想要一个空的<div>,请使用tagNameattributes 等选项自定义作为视图模板的顶级元素创建的元素主干。

    setElement 用于将视图元素动态更改为其他内容...我很少(或从未)看到它实际被使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-16
      • 1970-01-01
      • 2013-05-29
      • 2012-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多