我一直在尝试使用来自from的tablesaw插件(仅堆栈版本)来渲染响应表。视图基本上是使用主干和下划线模板呈现的。但是,当缩小视口时,标签就不会显示。
https://github.com/filamentgroup/tablesaw
我的骨骼视图如下所示。模型是从spec.json文件中读取的。
App.views.AnalyticsView = Backbone.View.extend({
render: function () {
this.$el.html(this.template());
var $tableBody = this.$el.find('#table-body');
//Creating analytics table rows from spec.json
//Appending to table body in analytics page template
_.each(this.collection.models, function(model) {
var rowHtml = '<tr>';
_.each(model.attributes, function(value) {
rowHtml += '<td>' + value + '</td>';
});
rowHtml += '</tr>';
$tableBody.append(rowHtml);
});
return this;
}
});我的下划线模板如下-
<div class="row-fluid">
<div class="span12">
<p><%_ analytics.intro %></p>
</div>
</div>
<div>
</div>
<table class="tablesaw tablesaw-stack" data-tablesaw-mode="stack">
<thead id="table-head">
<th><%_ analytics.parameter %></th>
<th><%_ analytics.title %></th>
<th><%_ analytics.apisource %></th>
<th><%_ analytics.description %></th>
</thead>
<tbody id="table-body"></tbody>
</table>
</div>表头使用underi18n进行国际化。我刚接触backbone,所以如果有更好的方法来渲染视图,请随时告诉我。我的目标是获得一个完全响应的表,其数据将从spec.json文件中设置。
提前谢谢。
发布于 2015-02-24 10:00:52
所以问题已经解决了。我不得不编辑tablesaw插件中的几行代码,特别是在触发事件的地方。
早些时候是- this.$table.trigger( events.create, [ this, colstart ] );,它没有触发所需的事件。我把它改成了$( document ).trigger( events.create, [ this, colstart ] );,这样它就可以工作了。
我使用this.$el.find("#analytics-table").table();直接调用了插件,我还删除了与插件相关的'enhance-tablesaw‘事件。
感谢@ahmad的帮助
https://stackoverflow.com/questions/28555733
复制相似问题