Backbone.js:在另一个视图中显示一个视图的结果

时间:2011-12-08 04:17:17

标签: javascript backbone.js

我有以下情况。

  • 表格行列表。
...
<tr><td><a href="#" class="item" id="1">get items</a></td></tr>
<tr><td><a href="#" class="item" id="2">get items</a></td></tr>
<tr><td><a href="#" class="item" id="3">get items</a></td></tr>
...

从“TableView”Backbone对象创建整个表,表的每一行都是从“TableRowView”Backbone对象创建的。

  • 点击每行中的“获取项目”链接时,我请求服务器获取对象列表。这些对象存储在自己的模型和集合中。反过来,他们有自己的视图对象“TableRowListView”。

到目前为止,一切正常。我想要做的是返回当前“TableRowListView”的“el”并将其附加到被单击的表行。所以最终结果看起来像

...
<tr><td>
    <a href="#" class="item" id="1">get items</a>
    <ul>
      <li>table row list object</li>
      <li>table row list object</li>
    </ul>
  </td></tr>
<tr><td><a href="#" class="item" id="2">get items</a></td></tr>
<tr><td><a href="#" class="item" id="3">get items</a></td></tr>
...

所以我想我在尝试将视图对象“插入”另一个视图时遇到了麻烦。

1 个答案:

答案 0 :(得分:2)

如果您从新Recipes with Backbone book查看关于集合视图的免费章节,您会看到如下代码:

addOne: function(model) {
  view = new Views.Appointment({model: model});
  view.render();
  $(this.el).append(view.el);
  model.bind('remove', view.remove);
}

作者正在为项目创建子视图,然后将视图的元素附加到包含视图的元素。这就是你要追求的吗?

如果是这样,那么我会推荐这一章(您可以从网站上以PDF格式下载),看看它是否进一步澄清了事情。这是一个简短的阅读(我认为六页)。