骨干观点中的el和$ el是什么?

时间:2016-01-31 10:48:59

标签: javascript backbone.js zepto

我试图避免在主干中渲染视图时用空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的神秘感吗?

1 个答案:

答案 0 :(得分:2)

custom SQL指向视图元素(保存模板其余部分的元素)和el是一个jQuery对象,代表el元素因此您不必始终$(this.el)

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

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

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