Javascript 使用主干渲染表

Javascript 使用主干渲染表,javascript,backbone.js,backbone-views,Javascript,Backbone.js,Backbone Views,我需要代码方面的帮助,我正在努力学习我的社会项目的主干。我正在尝试从API(已部署API)中获取的集合中呈现视图 以下是表格的HTML代码: <div class="container-fluid"> <table id= "teachers"> <thead> <tr> <th>Name</th> <th>Last Name</th> <th>Code</th>

我需要代码方面的帮助,我正在努力学习我的社会项目的主干。我正在尝试从API(已部署API)中获取的集合中呈现视图

以下是表格的HTML代码:

<div class="container-fluid">
<table id= "teachers">
<thead>
<tr>
  <th>Name</th>
  <th>Last Name</th>
  <th>Code</th>
  <th>Last time online</th>
</tr>
</thead>
<tbody id="table-body"></tbody>
</table>
</div>

<script type="text/template" id="teacher-template">
<td><%= name %></td>
<td><%= lastname %></td>
<td><%= code %></td>
<td><%= lastactivity %></td>
</script>   
所以我的问题是,如何将集合传递给视图,或者如何将集合的模型传递给视图?我想呈现表中每一行的数据。浏览器将获取集合,如您在此处所见:

我已经试了好几天了,我只是不明白其中的逻辑,我已经阅读了文档,还有一点艾迪·奥斯马尼的书,但我就是想不起来,有人能给我解释一下吗?我一直在这个网站上寻找答案,但其中一些包括一些“添加模型”的东西,这让我更加困惑

(图中模型的参数与代码不同。我会进行翻译,使其更易于理解。)

如何将集合传递给视图,或如何将集合的模型传递给视图

您已经在代码中这样做了:

var teacher = new TeacherView({
  model: model
});
这里使用model选项将模型传递给视图的构造函数

您可以通过集合的构造函数将集合传递给视图,如:

var app = new TeachersView({
  collection:teachercollection
});
您可以分别通过
this.collection
this.model
在视图内部访问它

var TeachersView = Backbone.View.extend({
  el: '#table-body',
  initialize: function() {
    this.render();
  },
  render: function() {
    this.$el.html('');
    this.collection.each(function(model) {
      this.$el.append(new TeacherView({
        model: model
      }).el);
    },this);
    return this;
  }
});
请注意,因此需要等到渲染成功后才能渲染视图

请参阅本文中有关我对渲染方法所做更改的建议


这可能有助于理解一两件事

非常感谢你!数据仍然没有显示在表tho中,但我会继续阅读,以找出如何做到这一点
var TeachersView = Backbone.View.extend({
  el: '#table-body',
  initialize: function() {
    this.render();
  },
  render: function() {
    this.$el.html('');
    this.collection.each(function(model) {
      this.$el.append(new TeacherView({
        model: model
      }).el);
    },this);
    return this;
  }
});