Javascript 使用主干渲染表
我需要代码方面的帮助,我正在努力学习我的社会项目的主干。我正在尝试从API(已部署API)中获取的集合中呈现视图 以下是表格的HTML代码: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>
<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;
}
});