gpt4 book ai didi

javascript - 在backbone看来,el和$el是什么?

转载 作者:行者123 更新时间:2023-12-02 15:06:03 26 4
gpt4 key购买 nike

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

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

但是当我通过

附加此 View 时,我得到空 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 的奥秘吗?

最佳答案

el 指向 View 元素(保存模板其余部分的元素)和 $el 是一个 jQuery 对象,代表 el元素这样你就不必做 $(this.el)一直以来。

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

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

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

关于javascript - 在backbone看来,el和$el是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35112956/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com