我有一个需要将数据填充到dl标签的 View ,因此我希望该 View 产生一个如下所示的标记:

<dt><i class="icon-<%= icon %>"></i><%= title %></dt>
<dd><%= content %> </dd>

因此,我实际上没有一个可以工作的顶级元素。它不能是dl标签,因为此后我需要在顶部元素中放置几项。

有没有解决的办法?

最佳答案

这里没有很好的选择。如您所说,项目 View 没有有效的标记(因为dl实际上仅在dtdd为子级的情况下才有效),并且一个 View 仅具有一个$ el。

也许您应该重构代码,以便有一个代表整个DL的集合 View ?如果集合中没有很多模型,则可以在任何模型更改时重新渲染DL / Collection View :

var Definitions = Backbone.View.extend({
  tagName: 'dl',

  initialize: function () {
    this.collection.on('change', this.render, this);
  }

  render: function () {
    this.$el.html( <output from template that loops over all definitions> );
  }
});

如果您想要有效的HTML,我想不出任何办法。如果您不太在意语义,则可以使用带有单独项目 View 的无序列表。

09-30 16:14
查看更多