Backgrid正在渲染
<table class="backgrid"></table>但别无他法。Backgrid:render()中的断点未到达。我是一个改编别人代码的骨干新手,所以不确定到底会发生什么,但是LayoutManager:render()是called..it,似乎永远不会到达Backgrid……我想要显示的数据正在被获取,看起来它们似乎在正确的位置,format...but不得不承认,一旦它们被包装在主干集合中,就很难区分它们。任何关于如何调试/为什么Backgrid的渲染没有被调用的指针都会被感激地收到。
代码如下:
ListenView.js
define([
'backbone',
'underscore',
'backgrid',
'app/models/PersonModel',
'app/collections/PersonCollection',
'app/views/PersonListView',
'hbs!app/templates/listen_template'
],
function(
Backbone,
_,
Backgrid,
Person,
PersonCollection,
PersonListView,
listenTemplate
) {
App = window.App || {};
var ListenView = Backbone.View.extend({
template: listenTemplate,
initialize: function(params) {
//fetch the list of seen people
this.model.attributes.seenPeople.fetch( {
success: function(coll, resp) {
//console.log(coll);
}
});
},
afterRender: function() {
//initialise person view
console.log("creating Backgrid");
this.seenPeopleView = new Backgrid.Grid({
columns: [{
name: "email",
label: "Email",
cell: "string"
},{
name: "id",
label: "ID",
cell: "integer"
}, {
name: "title",
label: "Title",
cell: "string" }
],
collection: this.model.attributes.seenPeople
});
this.seenPeopleView.render();
$('#seen-people-list').append(this.seenPeopleView.el);
}发布于 2016-03-02 04:59:10
在fetch的成功方法中,您应该调用afterRender。
var self=this;
this.model.attributes.seenPeople.fetch( {
success: function(coll, resp) {
self.afterRender();
}
});发布于 2016-03-04 15:29:51
不是在视图(this.seenPeopleView)中创建背景网格实例,而是将实例创建为
var grid = new Backgrid.Grid({...<your columns and collection related code>..});然后呈现网格并将根目录附加到HTML文档,如下所示
$('#seen-people-list').append(grid.render().el);希望它能起作用:)
https://stackoverflow.com/questions/35697351
复制相似问题