首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Backgrid:render未被调用

Backgrid:render未被调用
EN

Stack Overflow用户
提问于 2016-02-29 18:34:24
回答 2查看 129关注 0票数 0

Backgrid正在渲染

代码语言:javascript
复制
<table class="backgrid"></table>

但别无他法。Backgrid:render()中的断点未到达。我是一个改编别人代码的骨干新手,所以不确定到底会发生什么,但是LayoutManager:render()是called..it,似乎永远不会到达Backgrid……我想要显示的数据正在被获取,看起来它们似乎在正确的位置,format...but不得不承认,一旦它们被包装在主干集合中,就很难区分它们。任何关于如何调试/为什么Backgrid的渲染没有被调用的指针都会被感激地收到。

代码如下:

ListenView.js

代码语言:javascript
复制
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);
    }
EN

回答 2

Stack Overflow用户

发布于 2016-03-02 04:59:10

在fetch的成功方法中,您应该调用afterRender。

代码语言:javascript
复制
 var self=this;
 this.model.attributes.seenPeople.fetch( {
     success: function(coll, resp) {
                self.afterRender();
            }
 });
票数 0
EN

Stack Overflow用户

发布于 2016-03-04 15:29:51

不是在视图(this.seenPeopleView)中创建背景网格实例,而是将实例创建为

代码语言:javascript
复制
var grid = new Backgrid.Grid({...<your columns and collection related code>..});

然后呈现网格并将根目录附加到HTML文档,如下所示

代码语言:javascript
复制
$('#seen-people-list').append(grid.render().el);

希望它能起作用:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35697351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档