首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >this.$el.html vs this.$el.append

this.$el.html vs this.$el.append
EN

Stack Overflow用户
提问于 2013-04-17 09:13:43
回答 3查看 4.9K关注 0票数 4

在渲染模板时,this.$el.html和this.$el.append有什么不同吗?我对js、backbone等完全陌生。在我正在从事的当前项目中,我看到了如下内容

代码语言:javascript
复制
this.$el.append(Project.Templates["template-library"](this.model))

在外部视图中。在本例中,此模板用于模式视图。然后假设模式视图中的每一项都有一行显示在模式视图中。然后,对于这些行中的每一行,模板以如下方式呈现:

代码语言:javascript
复制
this.$el.html(this.template({ libraries: libraries.toJSON() }));

这两者之间有什么区别吗?以及为什么在某些情况下应该使用append(),而在其他情况下使用html()

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-17 11:00:32

对我来说,这实际上取决于如何使用视图的render方法。

有些人喜欢将render用作initialize的扩展,因为他们只在视图第一次出现在页面上时使用它一次,并且经常从initialize调用它。使用这种样式,您可以安全地使用append,而不必担心意外添加两次元素,因为渲染不会运行两次。

或者,您可以将render设计为在视图元素需要以某种方式更改时反复使用。Backbone很好地支持这种风格,例如。this.model.on('change', this.render, this);。对于这种风格,append会很烦人,因为在append-ing元素之前,您必须不断地检查元素是否已经存在。相反,html更有意义,因为它清除了以前存在的所有内容。

票数 3
EN

Stack Overflow用户

发布于 2013-04-17 09:15:46

使用append时,一个新元素将被插入到$el中,而html将更改$el的内容。

票数 1
EN

Stack Overflow用户

发布于 2015-02-05 14:00:52

使用.append()将允许您向已存在的对象添加或附加某些内容。而不是使用.html(),它会将整个对象更改为新的对象。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16049802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档