我有一个 Backbone.js 应用程序并正在尝试与 Backgrid 集成,但我无法理解我应该在哪里调用new Backgrid
. 我尝试在渲染后在我的视图中调用它,但附加网格不起作用,因为实际上还没有渲染。这是一些代码:
SpreadsheetIndex.js.coffee
D3.Views.SpreadsheetsIndex = Support.CompositeView.extend
initialize: (options) ->
this.tables = options.tables
this.resources = options.resources
_.bindAll(this, 'render')
render: ->
this.renderTemplate()
this.renderSpreadsheets()
resources = this.resources
this.tables.each (table) ->
subset = resources.subcollection
filter: (resource) ->
resource.escape('table_id') == table.escape('id')
grid = new Backgrid.Grid
columns: table.attributes.columns
collection: subset
$("#"+table.escape('id')).append(grid.render().$el);
return this
renderTemplate: ->
this.$el.html(JST['spreadsheets/index']({ spreadsheets: this.tables }))
renderSpreadsheets: ->
self = this
self.$('tbody').empty();
电子表格/index.jst.ejs
<% spreadsheets.each(function(spreadsheet) { %>
<h4><%= spreadsheet.escape('name')%></h4>
<div id='<%= spreadsheet.escape('id') %>'></div>
<% }) %>
问题是$("#"+table.escape('id'))
选择器没有选择任何东西,因为模板还没有呈现。感觉就像我把它放在了错误的地方。我究竟做错了什么?