代码之家  ›  专栏  ›  技术社区  ›  Crystal

这个$el.html与此相比$el.附件

  •  4
  • Crystal  · 技术社区  · 12 年前

    这两者之间有什么不同吗$el.html和这个$el.渲染模板时出现?我对js、主干网等完全陌生。在我正在进行的当前项目中,我看到了这样的东西

    this.$el.append(Project.Templates["template-library"](this.model))
    

    在外部视图中。在这种情况下,此模板用于模式视图。然后说模态视图中每个项目都有一行要显示在模态视图中。然后,对于这些行中的每一行,模板的渲染方式如下:

    this.$el.html(this.template({ libraries: libraries.toJSON() }));
    

    两者之间有什么区别吗?为什么 append() 应在某些情况下使用,以及 html() 另一方面。

    3 回复  |  直到 12 年前
        1
  •  3
  •   machineghost    12 年前

    对我来说,这实际上取决于你如何使用自己的观点 render 方法

    有些人喜欢使用 提供 作为的扩展 initialize ,因为当视图首次出现在页面上时,他们只使用一次,并且经常从 初始化 。有了这种风格,你可以安全地使用 append 不用担心意外添加两次元素,因为渲染不会运行两次。

    或者,您可以设计 提供 每当视图的元素需要以某种方式更改时,都可以反复使用。骨干很好地支持这种风格。 this.model.on('change', this.render, this); 对于这种风格, 追加 这会很烦人,因为你必须经常检查元素以前是否已经存在 追加 -给他们打电话。相反 html 更有意义,因为它消灭了以前存在的一切。

        2
  •  1
  •   k0pernikus    12 年前

    具有 append 将在中插入一个新元素 $el 虽然 html 将更改的内容 $el美元 .

        3
  •  1
  •   Rahul K P no11    8 年前

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